Exemplo n.º 1
0
        // 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));
        }
Exemplo n.º 2
0
        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));
        }