// GET: AdminProduct/Edit/5 public IActionResult Edit(int?id) { if (id == null) { return(NotFound()); } var product = _context.Product.Include(p => p.ProductStatus) .Where(p => p.ProductID == id).FirstOrDefault(); if (product == null) { return(NotFound()); } var date = DateTime.Now; DateTime saleStartDateTime = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, 0); AdminProductEditViewModel model = new AdminProductEditViewModel() { ProductID = product.ProductID, ProductName = product.ProductName, ProductOldName = product.ProductName, ImageUrl = product.ImageUrl, ProductStock = product.ProductStock, ProductPrice = product.ProductPrice, ProductDiscount = product.ProductDiscount, SaleStartDateTime = product.ProductStatus.ProductStatusName == "Sale" ? product.SaleStartDateTime : saleStartDateTime, SaleEndDateTime = product.ProductStatus.ProductStatusName == "Sale" ? product.SaleEndDateTime : saleStartDateTime, ProductInformation = product.ProductInformation, Description = product.Description, ProductServingContent = product.ProductServingContent }; ViewData["CategoryID"] = new SelectList(_context.Category, "CategoryID", "CategoryName", product.CategoryID); ViewData["ProductStatusID"] = new SelectList(_context.Set <ProductStatus>(), "ProductStatusID", "ProductStatusName", product.ProductStatusID); //ViewData["RewardPoolID"] = new SelectList(_context.Set<RewardPool>(), "RewardPoolID", "RewardPoolID", product.RewardPoolID); ViewData["ProductServingTypeID"] = new SelectList(_context.Set <ProductServingType>(), "ProductServingTypeID", "ServingType", product.ProductServingTypeID); return(View(model)); }
public async Task <IActionResult> Edit(int id, [Bind("ProductID,ProductPrice,ProductStock,ProductName,ProductDiscount," + "ProductInformation,Description,ProductServingContent,ProductServingTypeID," + "ProductStatusID,CategoryID,ProductIncrement,Image,ImageUrl,SaleStartDateTime,SaleEndDateTime")] AdminProductEditViewModel model) { if (id != model.ProductID) { return(NotFound()); } Product product = _context.Product.Where(p => p.ProductID == model.ProductID).FirstOrDefault(); if (model != null && model.ProductName != null && product.ProductName != model.ProductName) { bool parseResult; bool.TryParse(((JsonResult)IsProductExist(model.ProductName)).Value.ToString(), out parseResult); if (parseResult != true) { ModelState.AddModelError(string.Empty, "Product Name Is Not Unique"); } } if (model.SaleStartDateTime > model.SaleEndDateTime) { ModelState.AddModelError(string.Empty, "Sale Start Date Should be Before Than the End Date"); } if (ModelState.IsValid) { product.ProductName = model.ProductName; product.ProductStock += model.ProductIncrement == null ? 0 : model.ProductIncrement; product.ProductPrice = model.ProductPrice; product.ProductDiscount = model.ProductDiscount == null ? 0 : model.ProductDiscount; product.PriceAfterDiscount = (double)(product.ProductPrice - (product.ProductPrice * product.ProductDiscount)); product.SaleStartDateTime = model.SaleStartDateTime; product.SaleEndDateTime = model.SaleEndDateTime; product.ProductInformation = model.ProductInformation; product.Description = model.Description; product.ProductServingContent = model.ProductServingContent == null ? 0 : model.ProductServingContent; product.ProductServingTypeID = model.ProductServingTypeID; product.ProductStatusID = model.ProductStatusID; product.CategoryID = model.CategoryID; product.ProductUpdateDate = DateTime.Now; if (model.Image != null) { string filePath = Path.Combine(_HostingEnvironment.WebRootPath, "lib", "images", "products", product.ImageUrl); System.IO.File.Delete(filePath); product.ImageUrl = ProcessUploadedFile(model.Image); } try { _context.Update(product); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ProductExists(product.ProductID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["CategoryID"] = new SelectList(_context.Category, "CategoryID", "CategoryName", model.CategoryID); ViewData["ProductStatusID"] = new SelectList(_context.Set <ProductStatus>(), "ProductStatusID", "ProductStatusName", model.ProductStatusID); //ViewData["RewardPoolID"] = new SelectList(_context.Set<RewardPool>(), "RewardPoolID", "RewardPoolID", product.RewardPoolID); ViewData["ProductServingTypeID"] = new SelectList(_context.Set <ProductServingType>(), "ProductServingTypeID", "ServingType", model.ProductServingTypeID); return(View(model)); }