public ActionResult Edit(UploadProductViewModel prod)
        {
            if (ModelState.IsValid)
            {
                Mapper.Initialize(cfg => cfg.CreateMap <UploadProductViewModel, UploadProductDTO>());
                var product = Mapper.Map <UploadProductViewModel, UploadProductDTO>(prod);
                _productService.UpdateProduct(product);

                return(RedirectToAction("Edit", "Product"));
            }

            return(View("Products"));
        }
        public ActionResult AddProduct(UploadProductViewModel prod)
        {
            if (ModelState.IsValid && prod.Image != null)
            {
                string path = Server.MapPath("~/Image/" + prod.Name.Replace(" ", "") + ".png");

                prod.Absolutepath = path;
                Mapper.Initialize(cfg => cfg.CreateMap <UploadProductViewModel, UploadProductDTO>());

                var product = Mapper.Map <UploadProductViewModel, UploadProductDTO>(prod);
                _productService.CreateProduct(product);
            }
            else
            {
                ModelState.AddModelError("Image", "Заполните все поля");
            }
            return(View("UploadProduct"));
        }
Beispiel #3
0
        public async Task <ActionResult> Edit(UploadProductViewModel UploadProductViewModel)
        {
            if (ModelState.IsValid)
            {
                ImagesWithResolutions ImagesWithResolutions = new ImagesWithResolutions();

                string[]     Files          = Directory.GetFiles(Server.MapPath("~/temp/"));
                List <State> LStates        = UploadProductViewModel.States.ToList();
                Product      currentProduct = productRepository.products.FirstOrDefault(p => p.ProductID == UploadProductViewModel.Product.ProductID);
                if (currentProduct == null)
                {
                    await productRepository.SaveProduct(UploadProductViewModel.Product);

                    currentProduct = productRepository.products.LastOrDefault();
                }
                List <ImagesWithResolutions> LImagesWithResolutions = currentProduct.ImagesWithResolutions.ToList();
                int CountFiles = 0;

                for (int i = 0; i < LStates.Count(); i++)
                {
                    switch (LStates[i])
                    {
                    case State.add:
                        if (Files.Length > 0 && CountFiles < Files.Length)
                        {
                            deleteTempImg(Files[CountFiles]);
                            await productRepository.SaveImagesWithResolutions(currentProduct.ProductID, MakeImages(Files[CountFiles++]));
                        }

                        break;

                    case State.delete:
                        await productRepository.DeleteImagesWithResolutions(currentProduct.ProductID, currentProduct.ImagesWithResolutions.ElementAt(i).ImagesWithResolutionsID);

                        LStates.RemoveAt(i);
                        --i;
                        break;

                    case State.update:
                        deleteTempImg(Files[CountFiles]);
                        await productRepository.UpdateImagesWithResolutions(currentProduct.ProductID, currentProduct.ImagesWithResolutions.ElementAt(i).ImagesWithResolutionsID, MakeImages(Files[CountFiles++]));

                        break;

                    case State.saved:
                    case State.doNothing:
                    default: break;
                    }
                }



                UploadProductViewModel.Product.ImagesWithResolutions = currentProduct.ImagesWithResolutions;



                await productRepository.SaveProduct(UploadProductViewModel.Product);



                string filePath = Server.MapPath("~/temp/");
                Array.ForEach(Directory.GetFiles(filePath), System.IO.File.Delete);
                UploadProductViewModel.Product = productRepository.products.FirstOrDefault(p => p.ProductID == currentProduct.ProductID);
                if (UploadProductViewModel.Product == null)
                {
                    UploadProductViewModel.Product = productRepository.products.OrderBy(p => p.ProductID).LastOrDefault();
                }
                TempData["message"] = string.Format("Changes in the product \"{0}\" was change!", UploadProductViewModel.Product.Name);
            }


            return(View(UploadProductViewModel));
        }