private static void FillProductImageWith(ProductImageRecord productImageRecord, int width, int height, int ppi) { productImageRecord.Width = width; productImageRecord.Height = height; productImageRecord.Ppi = ppi; }
public ActionResult EditProduct(ProductViewModel viewModel) { var product = viewModel.Id == null ? new ProductRecord() : _productRepository.Get(viewModel.Id.Value); product.Name = viewModel.Name; var productHeadline = _productHeadlineRepository.Get(viewModel.SelectedProductHeadline); product.ProductHeadlineRecord = productHeadline; product.Materials = viewModel.Materials; product.Details = viewModel.Details; product.BaseCost = viewModel.BaseCost; product.WhenDeleted = null; if (product.ProductImageRecord == null) { var productImage = new ProductImageRecord() { ProdImgCulture = cultureUsed }; _productImageRepository.Create(productImage); product.ProductImageRecord = productImage; } foreach (var linkProductColour in product.ColorsAvailable) { _linkProductColorRepository.Delete(linkProductColour); } foreach (var productColourItem in viewModel.SelectedProductColours) { var productColour = _productColourRepository.Get(productColourItem.ProductColourId); var linkProductColour = new LinkProductColorRecord { ProductRecord = product, ProductColorRecord = productColour//, //BaseCost = productColourItem.BaseCost }; _linkProductColorRepository.Create(linkProductColour); } if (viewModel.Id == null) { _productRepository.Create(product); } else { _productRepository.Update(product); } var linkProductGroups = _linkProductGroupRepository.Table .Where(it => it.ProductRecord == product) .ToList(); foreach (var linkProductGroup in linkProductGroups) { _linkProductGroupRepository.Delete(linkProductGroup); } foreach (var productGroupId in viewModel.SelectedProductGroups) { var productGroup = _productGroupRepository.Get(productGroupId); var linkProductGroup = new LinkProductGroupRecord { ProductRecord = product, ProductGroupRecord = productGroup }; _linkProductGroupRepository.Create(linkProductGroup); } var linkProductSizes = _linkProductSizeRepository.Table .Where(it => it.ProductRecord == product) .ToList(); foreach (var linkProductSize in linkProductSizes) { _linkProductSizeRepository.Delete(linkProductSize); } int i = 0; foreach (var productSizeId in viewModel.SelectedProductSizes) { var productSize = _productSizeRepository.Get(productSizeId); var linkProductSize = new LinkProductSizeRecord { ProductRecord = product, ProductSizeRecord = productSize, SizeCost = viewModel.SelectedProductSizesCost.ElementAt(i) }; _linkProductSizeRepository.Create(linkProductSize); i++; } var frontImageSavingResult = SaveProductFrontImage(viewModel.ProductImageFront, product); var backImageSavingResult = SaveProductBackImage(viewModel.ProductImageBack, product); if (frontImageSavingResult != null) { FillProductImageWith(product.ProductImageRecord, frontImageSavingResult.Width, frontImageSavingResult.Height, ProductImagePpi); } else if (backImageSavingResult != null) { FillProductImageWith(product.ProductImageRecord, backImageSavingResult.Width, backImageSavingResult.Height, ProductImagePpi); } return RedirectToAction("EditProduct", new {productId = product.Id}); }