예제 #1
0
        // GET: ProductViewModels/Details/5
        public async Task <IActionResult> Details(int?id, string message)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var productViewModel = await _context.ProductViewModel.SingleOrDefaultAsync(m => m.Id == id);

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

            var viewmodel = new ProductsInOrderViewModel {
                ProductViewModel = productViewModel, ProductToOrder = new ProductToOrder()
            };

            if (message == "A01")
            {
                message =
                    "Niestety, aktualnie nie mamy teraz takiej iloœci danego produktu w magazynie. Zmniejsz iloœc lub skontaktuj siê z obs³ug¹";
                viewmodel.Message = message;
            }
            if (message == "B01")
            {
                message =
                    "Dziêkujemy, produkt zosta³ dodany do koszyka";
                viewmodel.Message = message;
            }

            return(View(viewmodel));
        }
예제 #2
0
        public async Task <IActionResult> Create(ProductsInOrderViewModel productsInOrderViewModel)
        {
            ProductToOrder productToOrder = productsInOrderViewModel.ProductToOrder;

            if (ModelState.IsValid)
            {
                var oneProduct = _context.ProductViewModel.First(s => s.Id == productToOrder.ProductId);
                if (oneProduct.Amount < productToOrder.AmountOfProduct)
                {
                    return(RedirectToAction("Details", "Product", new { id = oneProduct.Id, message = "A01" }));
                }
                productToOrder.Product   = oneProduct;
                productToOrder.ProductId = 0;
                productToOrder.TotalPriceForThisProduct = productToOrder.AmountOfProduct * oneProduct.Price;
                oneProduct.Amount = oneProduct.Amount - productToOrder.AmountOfProduct;
                _context.Update(oneProduct);

                var   orderList = _context.Order.ToList();
                Order order     = new Order {
                    ApplicationUserId = _userManager.GetUserId(User), DateTime = DateTime.Now, IsFinished = false, IsRealized = false, TotalPrice = 0
                };
                if (orderList.Count == 0)
                {
                    _context.Add(order);
                    productToOrder.Order            = order;
                    productToOrder.Order.TotalPrice = productToOrder.TotalPriceForThisProduct;
                    _context.Update(productToOrder.Order);
                }
                else
                {
                    var userId = _userManager.GetUserId(User);
                    orderList                       = _context.Order.Where(o => o.ApplicationUserId == userId && o.IsFinished == false).ToList();
                    productToOrder.Order            = orderList.Count == 0 ? order : orderList.First();
                    productToOrder.Order.TotalPrice = productToOrder.TotalPriceForThisProduct + productToOrder.Order.TotalPrice;
                    //_context.Update(productToOrder.Order);
                    //productToOrder.Order = order;
                }

                _context.Add(productToOrder);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Details", "Product", new { id = oneProduct.Id, message = "B01" }));
            }
            ViewData["OrderId"]   = new SelectList(_context.Set <Order>(), "Id", "Id", productToOrder.OrderId);
            ViewData["ProductId"] = new SelectList(_context.ProductViewModel, "Id", "Id", productToOrder.ProductId);
            return(View(productToOrder));
        }