예제 #1
0
        public void UpdateProductById(int id, EditProductView formData)
        {
            var product = _db.Products.Find(id);

            if (product == null)
            {
                return;
            }
            product.Name      = formData.Name;
            product.ImportAt  = formData.ImportAt;
            product.Price     = formData.Price;
            product.Stock     = formData.Stock;
            product.UpdatedAt = DateTime.Now;

            try
            {
                _db.Products.Attach(product);
                _db.Entry(product).State = EntityState.Modified;
                _db.SaveChanges();
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #2
0
        public int UpdateProduct(EditProductView productView)
        {
            var product = _context.Products.FirstOrDefault(el => el.Id == productView.id);

            product.Name         = productView.Name;
            product.CategoryId   = productView.CategoryId;
            product.CreateAt     = productView.CreateAt;
            product.CreateBy     = productView.CreateBy;
            product.PricePerUnit = productView.Price;
            product.Status       = productView.Status;

            if (productView.IformfilePath != null)
            {
                product.ImagePath = UploadedFile(productView.IformfilePath);

                if (!string.IsNullOrEmpty(productView.imgPath) && productView.imgPath != ProductImageDefault)
                {
                    string DelPath = Path.Combine(_webHostEnvironment.WebRootPath, "Images/ProductImages", productView.imgPath);
                    File.Delete(DelPath);
                }
            }

            _context.Update(product);
            return(_context.SaveChanges());
        }
 public IActionResult Edit(EditProductView productView)
 {
     if (ModelState.IsValid)
     {
         if (_productService.UpdateProduct(productView) > 0)
         {
             return(RedirectToAction("Index", "Product"));
         }
     }
     return(View(productView));
 }
 public EditProductViewModel(EditProductView editProductView, vwProduct product)
 {
     this.editProductView = editProductView;
     Product           = product;
     ProductBeforeEdit = new vwProduct
     {
         ProductName = product.ProductName,
         ProductKey  = product.ProductKey,
         Quantity    = product.Quantity,
         Price       = product.Price
     };
 }
예제 #5
0
        public ActionResult Edit(int id, EditProductView formData)
        {
            try
            {
                _productService.UpdateProductById(id, formData);

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
 /// <summary>
 /// This method invokes a method for showing a window for editing product.
 /// </summary>
 public void EditProductExecute()
 {
     try
     {
         EditProductView editProductView = new EditProductView(Product);
         editProductView.ShowDialog();
         ProductList = products.ViewAllProduct();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
 }
 public IActionResult Edit(EditProductView productView)
 {
     if (productView.Price <= 0)
     {
         ModelState.AddModelError("", "Số tiền không hợp lệ");
         return(View(productView));
     }
     if (ModelState.IsValid)
     {
         if (productRepository.UpdateProduct(productView) > 0)
         {
             return(RedirectToAction("Index", "Product"));
         }
     }
     return(View(productView));
 }
예제 #8
0
        public EditProductView FindProductToView(int id)
        {
            var product = context.Products.FirstOrDefault(el => el.Id == id);

            var productview = new EditProductView()
            {
                Id         = product.Id,
                Name       = product.Name,
                Price      = product.PricePerUnit,
                CreateAt   = product.CreateAt,
                CreateBy   = product.CreateBy,
                CategoryId = product.CategoryId,
                ImgPath    = product.ImagePath
            };

            return(productview);
        }
        public OperationResult EditProductView(EditProductView command)
        {
            var operation = new OperationResult();
            var product   = _productRepository.Get(command.Id);

            if (product == null)
            {
                return(operation.Failed(ApplicationMessages.RecordNotFound));
            }



            product.EditProductView(command.View);

            _productRepository.SaveChanges();

            return(operation.Succedded());
        }
예제 #10
0
 private void ItemEditProduct_Click(object sender, EventArgs e)
 {
     if (dv.SelectedRows.Count == 1)
     {
         long id      = (long)dv.SelectedRows[0].Cells["MSP"].Value;
         var  Product = result.Where(p => p.product_id == id).FirstOrDefault();
         if (Product != null)
         {
             using (EditProductView view = new EditProductView(getParent().controller, Product))
             {
                 view.ShowDialog();
                 if (view.IsChange)
                 {
                     Product = view.product;
                 }
             }
         }
     }
     else
     {
         if (dv.SelectedCells.Count == 1)
         {
             long id      = (long)dv.Rows[dv.SelectedCells[0].RowIndex].Cells["MSP"].Value;
             var  Product = result.Where(p => p.product_id == id).FirstOrDefault();
             if (Product != null)
             {
                 using (EditProductView view = new EditProductView(getParent().controller, Product))
                 {
                     view.ShowDialog();
                     if (view.IsChange)
                     {
                         Product = view.product;
                     }
                 }
             }
         }
         else
         {
             Functions.ShowMessgeError("Chưa chọn dữ liệu để đổi");
         }
     }
 }
예제 #11
0
 private void AddExecute()
 {
     if (this.ProductViewModels.Count < _limitCount)
     {
         EditProductView view = new EditProductView();
         List <Product>  list = new List <Product>();
         foreach (var item in ProductViewModels)
         {
             list.Add(new Product {
                 Url = item.Url
             });
         }
         EditProductViewModel viewModel = new EditProductViewModel(list);
         viewModel.SaveCompleted += viewModel_SaveCompleted;
         view.DataContext         = viewModel;
         view.ShowDialog();
     }
     else
     {
         string message = string.Format("最多只能同时监控{0}个商品", _limitCount);
         MessageBox.Show(message);
     }
 }
예제 #12
0
        public ProductQueryModel GetProductDetails(string slug)
        {
            var inventory = _inventoryContext.Inventories
                            .Select(x => new { x.ProductId, x.UnitPrice, x.InStock });

            var dateTime = DateTime.Now;

            var discounts = _discountContext.CustomerDiscounts
                            .Where(x => x.StartDate < dateTime && dateTime < x.EndDate)
                            .Select(x => new { x.ProductId, x.DiscountRate, x.EndDate });

            var products = _shopContext.Products
                           .Include(x => x.Category)
                           .Include(x => x.ProductPictures)
                           .Select(product => new ProductQueryModel
            {
                Id               = product.Id,
                Category         = product.Category.Name,
                PrimaryPicture   = product.PrimaryPicture,
                SecondaryPicture = product.SecondaryPicture,
                PictureAlt       = product.PictureAlt,
                PictureTitle     = product.PictureTitle,
                Slug             = product.Slug,
                Name             = product.Name,
                Seller           = product.Seller,
                CategorySlug     = product.Category.Slug,
                Code             = product.Code,
                View             = product.View,
                Description      = product.Description,
                Keywords         = product.Keywords,
                MetaDescription  = product.MetaDescription,
                ShortDescription = product.ShortDescription,
                Pictures         = MapProductPictures(product.ProductPictures),
            }).FirstOrDefault(x => x.Slug == slug);

            if (products == null)
            {
                return(new ProductQueryModel());
            }

            var productInventory = inventory.FirstOrDefault(x => x.ProductId == products.Id);

            if (productInventory != null)
            {
                products.InStock = productInventory.InStock;
                var price = productInventory.UnitPrice;
                products.Price       = price.ToMoney();
                products.DoublePrice = price;

                var discount = discounts.FirstOrDefault(x => x.ProductId == products.Id);
                if (discount != null)
                {
                    var discountRate = discount.DiscountRate;
                    products.DiscountRate       = discountRate;
                    products.DiscountExpireDate = discount.EndDate.ToDiscountFormat();
                    products.HasDiscount        = discountRate > 0;
                    var discountAmount = Math.Round((price * discountRate) / 100);
                    products.PriceWithDiscount = (price - discountAmount).ToMoney();
                }
            }
            products.Comments = _commentContext.Comments
                                .Where(x => x.Type == CommentTypes.Product)
                                .Where(x => x.OwnerRecordId == products.Id)
                                .Where(x => !x.IsCanceled)
                                .Where(x => x.IsConfirmed)
                                .Select(x => new CommentQueryModel
            {
                Id            = x.Id,
                Name          = x.Name,
                Message       = x.Message,
                OwnerRecordId = x.OwnerRecordId,
                CreationDate  = x.CreationDate.ToFarsi(),
            }).OrderByDescending(x => x.Id).ToList();



            var productView = new EditProductView
            {
                Id   = products.Id,
                View = products.View + 1
            };

            _productApplication.EditProductView(productView);


            return(products);
        }