public IActionResult Complete(ShippingDetails shippingDetails) { if (ModelState.IsValid) { var cart = _sessionService.GetCart(); foreach (var item in cart.CartLines) { if (item.Product.UnitInStock > item.Quantity) { _productService.Update(new Product() { ProductName = item.Product.ProductName, Id = item.Product.Id, UnitPrice = item.Product.UnitPrice, UnitInStock = (item.Product.UnitInStock - item.Quantity), Image = item.Product.Image, CategoryId = item.Product.CategoryId }); } else { TempData.Add("message", String.Format("insufficient product units(Available product Units={0})", item.Product.UnitInStock)); return(View(shippingDetails)); } } var order = new Order() { Id = r.Next(10000, 100000), Total = cart.Total, AccountId = _userManager.GetUserId(HttpContext.User), Mahalle = shippingDetails.Neighborhood, Name = shippingDetails.Name, Sehir = shippingDetails.Province, Semt = shippingDetails.District }; _orderService.Add(order); foreach (var pr in cart.CartLines) { OrderLine orderLine = new OrderLine(); orderLine.Quantity = pr.Quantity; orderLine.Price = pr.Quantity * pr.Product.UnitPrice; orderLine.ProductId = pr.Product.Id; orderLine.AccountId = _userManager.GetUserId(HttpContext.User); orderLine.OrderId = order.Id; _orderLineService.Add(orderLine); } cart.CartLines.Clear(); } return(RedirectToAction("Details")); }
public IActionResult Complete(ShippingDetail shippingDetail) { var cart = _cartSessionService.GetCart(); shippingDetail.AccountId = _userManager.GetUserId(HttpContext.User); shippingDetail.Time = DateTime.Today; _shippingDetailService.Add(shippingDetail); Order order = new Order() { AccountId = _userManager.GetUserId(HttpContext.User), ShippingDetailId = shippingDetail.ID, Total = cart.Total, }; _orderService.Add(order); foreach (var item in cart.CartLines) { if (item.Supplement.UnitInStock > item.Quantity) { item.Supplement.UnitInStock = (item.Supplement.UnitInStock - item.Quantity); _supplementService.Update(item.Supplement); OrderLine orderLine = new OrderLine(); orderLine.OrderID = order.ID; orderLine.Price = item.Supplement.Price; orderLine.SupplementID = item.Supplement.ID; orderLine.Quantity = item.Quantity; orderLine.AccountId = _userManager.GetUserId(HttpContext.User); orderLine.Time = DateTime.Today; _orderLineService.Add(orderLine); } } cart.CartLines.Clear(); TempData.Add("message", "Your products successfully completed"); return(RedirectToAction("Details")); }