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")); }
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)); }