public ActionResult AddProductSize()
        {
            var viewModel = new ProductSizeViewModel();
            FillProductSizeViewModelWithMetrics(viewModel);
            FillProductSizeViewModelWithSizeCodes(viewModel);

            return View(viewModel);
        }
 private void FillProductSizeViewModelWithSizeCodes(ProductSizeViewModel viewModel)
 {
     viewModel.SizeCodes = _sizeCodeRepository.Table
         .ToList();
 }
        public ActionResult EditProductSize(ProductSizeViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                foreach (var error in ModelState.Values.SelectMany(m => m.Errors).Select(e => e.ErrorMessage))
                {
                    _orchardServices.Notifier.Error(T(error));
                }
                return RedirectToAction("EditProductSize", new {productSizeId = viewModel.Id});
            }

            var productSize = _productSizeRepository.Get(viewModel.Id);

            var sizeCode = _sizeCodeRepository.Get(viewModel.SelectedSizeCode);
            productSize.SizeCodeRecord = sizeCode;

            productSize.WidthCm = ConvertSize(viewModel.WidthDimension, viewModel.Width, SizeMetricDimension.Centimetre);
            productSize.WidthInch = ConvertSize(viewModel.WidthDimension, viewModel.Width, SizeMetricDimension.Inch);
            productSize.LengthCm = ConvertSize(viewModel.LengthDimension, viewModel.Length,
                SizeMetricDimension.Centimetre);
            productSize.LengthInch = ConvertSize(viewModel.LengthDimension, viewModel.Length, SizeMetricDimension.Inch);

            if (viewModel.Sleeve != null)
            {
                productSize.SleeveCm = ConvertSize(viewModel.SleeveDimension, viewModel.Sleeve.Value,
                    SizeMetricDimension.Centimetre);
                productSize.SleeveInch = ConvertSize(viewModel.SleeveDimension, viewModel.Sleeve.Value,
                    SizeMetricDimension.Inch);
            }

            _productSizeRepository.Update(productSize);

            _orchardServices.Notifier.Information(T("Product Size has been edited."));

            return RedirectToAction("Index");
        }
 private void FillProductSizeViewModelWithMetrics(ProductSizeViewModel viewModel)
 {
     viewModel.SizeMetricDimensions = new SelectList(new[]
     {
         new SelectListItem
         {
             Text = T("cm").ToString(),
             Value = Enum.GetName(typeof (SizeMetricDimension), SizeMetricDimension.Centimetre)
         },
         new SelectListItem
         {
             Text = T("in").ToString(),
             Value = Enum.GetName(typeof (SizeMetricDimension), SizeMetricDimension.Inch)
         }
     }, "Value", "Text");
 }
        public ActionResult EditProductSize(int productSizeId)
        {
            var productSize = _productSizeRepository.Get(productSizeId);

            var viewModel = new ProductSizeViewModel
            {
                Id = productSize.Id,
                Width = productSize.WidthCm,
                Length = productSize.LengthCm,
                Sleeve = productSize.SleeveCm,
                SelectedSizeCode = productSize.SizeCodeRecord.Id
            };

            FillProductSizeViewModelWithMetrics(viewModel);
            FillProductSizeViewModelWithSizeCodes(viewModel);

            return View(viewModel);
        }