public ActionResult AddProducts(WebApp.Models.OrderSale orderSale) { if (ModelState.IsValid) { var order = _orderRepo.GetOrderById(orderSale.OrderId); var inventory = _locRepo.GetInventory(order.LocationId); var product = inventory.Find(p => p.ProductId == orderSale.ProductId); if (product.Quantity - orderSale.Quantity < 0) { return(RedirectToAction(nameof(Detail), new { OrderId = orderSale.OrderId })); } else { bool isInOrder = order.OrderSales.Any(p => p.Product.ProductId == product.ProductId); var totalPrice = product.Product.Price * orderSale.Quantity; if (isInOrder) { foreach (var prod in order.OrderSales) { if (prod.Product.ProductId == orderSale.ProductId) { var currentOrder = _orderRepo.GetOrderSaleById(prod.ProductId); currentOrder.Quantity += orderSale.Quantity; currentOrder.SalePrice = (decimal)totalPrice; order.Total = (decimal)totalPrice; } } ; } else { var newOrderSale = new ClassLibrary.Models.OrderSale(orderSale.ProductId, orderSale.ProductName, (decimal)totalPrice, orderSale.Quantity); order.Total += (decimal)totalPrice; _orderRepo.AddProductToOrder(newOrderSale); _orderRepo.UpdateOrder(order); } product.Quantity -= orderSale.Quantity; return(RedirectToAction(nameof(AddProducts), new { id = order.OrderId })); } } return(View()); }
public ActionResult AddProducts(int orderId) { var orderSale = new WebApp.Models.OrderSale { Quantity = 1, }; orderSale.OrderId = orderId; var products = _prodRepo.GetProducts(); foreach (var product in products) { orderSale.Products.Add(product); } return(View(orderSale)); }