Exemplo n.º 1
0
 private static void FillProductImageWith(ProductImageRecord productImageRecord, int width, int height, int ppi)
 {
     productImageRecord.Width  = width;
     productImageRecord.Height = height;
     productImageRecord.Ppi    = ppi;
 }
Exemplo n.º 2
0
        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;
            product.xOrder      = viewModel.xOrder;
            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 }));
        }