Beispiel #1
0
        public async Task <IActionResult> Index()
        {
            OrderDetailCartVM = new OrderDetailCartViewModel()
            {
                OrderHeader = new Models.OrderHeader()
            };

            OrderDetailCartVM.OrderHeader.OrderTotal = 0;

            var claimsIdentity = (ClaimsIdentity)this.User.Identity;
            var claim          = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier);

            var cart = _db.ShoppingCart.Where(s => s.ApplicationUserId == claim.Value);

            if (cart != null)
            {
                OrderDetailCartVM.ShoppingCart = cart.ToList();
            }

            foreach (var item in OrderDetailCartVM.ShoppingCart)
            {
                item.MenuItem = await _db.MenuItem.FirstOrDefaultAsync(m => m.Id == item.MenuItemId);

                OrderDetailCartVM.OrderHeader.OrderTotal += (item.MenuItem.Price * item.Count);
                item.MenuItem.Description = MethodStatic.ConvertToRawHtml(item.MenuItem.Description);
                if (item.MenuItem.Description.Length > 100)
                {
                    item.MenuItem.Description = item.MenuItem.Description.Substring(0, 99) + "...";
                }
            }
            OrderDetailCartVM.OrderHeader.OrderTotalOriginal = OrderDetailCartVM.OrderHeader.OrderTotal;

            //Coupon Code
            if (!string.IsNullOrEmpty(HttpContext.Session.GetString(Constant.Session_CouponCode)))
            {
                OrderDetailCartVM.OrderHeader.CouponCode = HttpContext.Session.GetString(Constant.Session_CouponCode);
                var couponFromDb = await _db.Coupon.FirstOrDefaultAsync(c => c.Name.ToLower() == OrderDetailCartVM.OrderHeader.CouponCode);

                OrderDetailCartVM.OrderHeader.OrderTotal = MethodStatic.DiscountedPrice(couponFromDb, OrderDetailCartVM.OrderHeader.OrderTotalOriginal);
            }

            return(View(OrderDetailCartVM));
        }