public async Task <IActionResult> Create([Bind("FirstName,LastName,City,PostalCode,Country,Phone")]
                                                 Order order)
        {
            ApplicationUser user = await _userManager.GetUserAsync(User);

            if (ModelState.IsValid)
            {
                Models.ShoppingCart cart    = Models.ShoppingCart.GetCart(this.HttpContext);
                List <CartItem>     items   = cart.GetCartItems(_context);
                List <OrderDetail>  details = new List <OrderDetail>();
                foreach (CartItem item in items)
                {
                    OrderDetail detail = CreateOrderDetailForThisItem(item);
                    detail.Order = order;
                    details.Add(detail);
                    _context.Add(detail);
                }

                order.User         = user;
                order.OrderDate    = DateTime.Today;
                order.Total        = Models.ShoppingCart.GetCart(this.HttpContext).GetTotal(_context);
                order.GST          = order.Total * (decimal)0.15;
                order.GrandTotal   = order.Total + order.GST;
                order.OrderDetails = details;

                _context.SaveChanges();

                return(RedirectToAction("Purchased",
                                        new RouteValueDictionary(new { action = "Purchased", id = order.OrderID })));
            }

            return(View(order));
        }