Example #1
0
        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));
        }
Example #2
0
        private OrderSouvenir CreateOrderDetailForThisItem(CartItem item)
        {
            OrderSouvenir detail = new OrderSouvenir();


            detail.Quantity  = item.Count;
            detail.Souvenir  = item.Souvenir;
            detail.UnitPrice = item.Souvenir.Price;

            return(detail);
        }