public async Task <IActionResult> Create([Bind("FullName,Address,MobilePhoneNumber")] Order order) { ApplicationUser user = await _userManager.GetUserAsync(User); if (ModelState.IsValid) { ShoppingCart cart = ShoppingCart.GetCart(this.HttpContext); List <CartItem> items = cart.GetCartItems(_context); List <OrderSouvenir> orderSouvenirs = new List <OrderSouvenir>(); foreach (CartItem item in items) { OrderSouvenir detail = CreateOrderDetailForThisItem(item); detail.Order = order; orderSouvenirs.Add(detail); _context.Add(detail); } order.OrderStatus = OrderStatus.Waiting; order.User = user; order.OrderDate = DateTime.Today; order.SubTotal = ShoppingCart.GetCart(this.HttpContext).GetSubTotal(_context); order.OrderSouvenirs = orderSouvenirs; order.GST = order.SubTotal * 15 / 100; order.Total = order.SubTotal + order.GST; _context.SaveChanges(); return(RedirectToAction("Purchased", new RouteValueDictionary( new { action = "Purchased", id = order.OrderID }))); } return(View(order)); }
private OrderSouvenir CreateOrderDetailForThisItem(CartItem item) { OrderSouvenir detail = new OrderSouvenir(); detail.Quantity = item.Count; detail.Souvenir = item.Souvenir; detail.UnitPrice = item.Souvenir.Price; return(detail); }