public ActionResult Edit(ProductFormViewModel viewModel) { if (!ModelState.IsValid) { viewModel.Categories = _unitOfWork.Category.GetCategoriesList(); return(View(viewModel)); } var product = _unitOfWork.Product.GetProductById(viewModel.Id); product.Name = viewModel.Name; product.Description = viewModel.Description; product.CategoryId = viewModel.Category; product.StockAmount = viewModel.StockAmount; product.Price = viewModel.Price; product.Year = viewModel.Year; product.Dimensions = viewModel.Dimensions; product.Manufacturer = viewModel.Manufacturer; var uploads = viewModel.UploadedFiles; if (uploads != null) { foreach (var upload in uploads) { if (upload != null && upload.ContentType.Contains("image")) { var productPhoto = new File { FileName = Path.GetFileName(upload.FileName), ProductId = product.Id }; var path = Path.Combine(Server.MapPath("~/Content/Images/"), productPhoto.FileName); Resize(100, 100, upload.InputStream, Path.Combine(Server.MapPath("~/Content/Images/Thumbnails/" + productPhoto.FileName))); product.Files.Add(productPhoto); upload.SaveAs(path); } else if (upload != null && !upload.ContentType.Contains("image")) { viewModel.Categories = _unitOfWork.Product.GetCategories(); return(View(viewModel)); } } if (product.Files.Count != 0) { _unitOfWork.Complete(); return(RedirectToAction("Index")); } } _unitOfWork.Complete(); return(RedirectToAction("Index")); }
public ActionResult Add(ProductFormViewModel viewModel) { if (!ModelState.IsValid) { viewModel.Categories = _unitOfWork.Category.GetCategoriesList(); return(View(viewModel)); } var product = new Product() { Name = viewModel.Name, Price = viewModel.Price, Description = viewModel.Description, CategoryId = viewModel.Category, StockAmount = viewModel.StockAmount, Year = viewModel.Year, Dimensions = viewModel.Dimensions, Manufacturer = viewModel.Manufacturer, AddedDate = DateTime.Now }; _unitOfWork.Product.AddProduct(product); _unitOfWork.Complete(); var uploads = viewModel.UploadedFiles; var productFiles = new List <File>(); if (uploads != null) { if (!Directory.Exists("~/Content/Images/") && !Directory.Exists("~/Content/Images/Thumbnails/")) { Directory.CreateDirectory(Server.MapPath("~/Content/Images/")); Directory.CreateDirectory(Server.MapPath("~/Content/Images/Thumbnails/")); } foreach (var upload in uploads) { if (upload != null && upload.ContentType.Contains("image")) { var productPhoto = new File { FileName = Path.GetFileName(upload.FileName), ProductId = product.Id }; ResizeBigImage(upload.InputStream, Path.Combine(Server.MapPath("~/Content/Images/"), productPhoto.FileName)); Resize(100, 100, upload.InputStream, Path.Combine(Server.MapPath("~/Content/Images/Thumbnails/" + productPhoto.FileName))); productFiles.Add(productPhoto); } else if (upload != null && !upload.ContentType.Contains("image")) { viewModel.Categories = _unitOfWork.Category.GetCategoriesList(); return(View(viewModel)); } } product.Files = productFiles; _unitOfWork.Complete(); } return(RedirectToAction("Index", "Product")); }