// 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)); }
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)); }