public async Task <IActionResult> Discount(ProductDiscountViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Details", new { model.Id }));
            }

            Product product = await _store.GetByIdAsync(model.Id);

            if (product == null)
            {
                return(NotFound());
            }

            var operation = ProductOperations.GiveDiscount(model.Discount);

            if (await _authz.AuthorizeAsync(User, product, operation))
            {
                product.Price -= model.Discount;
                await _store.UpdateAsync(product);

                return(RedirectToAction("Index"));
            }

            return(new ChallengeResult());
        }
Пример #2
0
 private void ComputeViewModel()
 {
     this.viewModel = new ProductDiscountViewModel()
     {
         Price = BASE_PRICE, DiscountPercent = 0, DiscountAvailable = false
     };
     this.NotifyPromotionChanged();
     DataContext = viewModel;
 }
        public ActionResult Edit(int id)
        {
            var viewModel = new ProductDiscountViewModel
            {
                ProductDiscount = _entities.ProductDiscounts.SingleOrDefault(a => a.ID == id),
            };

            return(View(viewModel));
        }
        public ActionResult Create()
        {
            List <Product> products  = _entities.Products.Where(a => a.ProductDiscounts.Count() == 0 && a.ItemCode != null).OrderBy(a => a.ItemCode).ToList();
            var            viewModel = new ProductDiscountViewModel
            {
                ProductDiscount = new ProductDiscount(),
                Products        = products,
            };

            viewModel.ProductDiscount.DateFrom = DateTime.Today;
            viewModel.ProductDiscount.DateTo   = viewModel.ProductDiscount.DateFrom.AddDays(40);
            viewModel.ProductDiscount.Discount = (float)0.2;
            return(View(viewModel));
        }