Пример #1
0
        public async Task <ActionResult> RemoveItem(CartOrderMenuItem item)
        {
            ApplicationUser user = await GetCurrentUserAsync();

            OrderInfo cart = await _context.OrderInfo.Where(usr => usr.User.Id == user.Id)
                             .Where(s => s.Status == Models.Status.Cart).SingleOrDefaultAsync();

            CartOrder viewModelCart = OrderDeserialize(cart);

            if (ModelState.IsValid)
            {
                foreach (var menuitem in viewModelCart.CartOrderMenuItems)
                {
                    if (menuitem.MenuItem.Id == item.MenuItem.Id)
                    {
                        viewModelCart.CartOrderMenuItems.Remove(menuitem);
                        break;
                    }
                }
                OrderInfo temp = OrderSerialize(viewModelCart);
                cart.OrderMenuItems = temp.OrderMenuItems;
                cart.TotalPrice     = CalculateTotalPrice(viewModelCart);
                await _context.SaveChangesAsync();

                return(Json(true));
            }
            return(Json(false));
        }
Пример #2
0
        /// <summary>
        /// Converts item to view model containing choice of addons tha can be added
        /// </summary>
        /// <param name="item">Menu item to convert to view model</param>
        /// <param name="subcategory">Subcategory to grab addons from</param>
        /// <returns>View model of item and addons</returns>
        private CartOrderMenuItem ConvertToOrderMenuItem(MenuItem item, Subcategory subcategory)
        {
            CartOrderMenuItem cartOrderMenuItem = new CartOrderMenuItem()
            {
                MenuItem       = item,
                ChoiceOfAddons = subcategory.AddOns
            };

            return(cartOrderMenuItem);
        }
Пример #3
0
        public async Task <ActionResult> EditItem(CartOrderMenuItem item)
        {
            ApplicationUser user = await GetCurrentUserAsync();

            OrderInfo cart = await _context.OrderInfo.Where(usr => usr.User.Id == user.Id)
                             .Where(s => s.Status == Models.Status.Cart).SingleOrDefaultAsync();

            CartOrder viewModelCart = OrderDeserialize(cart);

            if (ModelState.IsValid)
            {
                //CartOrderMenuItem menuitem = viewModelCart.CartOrderMenuItems.Find(i => i.MenuItem.Id == item.MenuItem.Id);
                //menuitem.MenuItem.MenuItemIngredients = item.MenuItem.MenuItemIngredients;
                viewModelCart.TotalPrice = 0;
                foreach (var menuitem in viewModelCart.CartOrderMenuItems)
                {
                    if (menuitem.MenuItem.Id == item.MenuItem.Id)
                    {
                        menuitem.MenuItem.MenuItemIngredients = item.MenuItem.MenuItemIngredients;
                        menuitem.AddOns        = item.AddOns;
                        menuitem.MenuItem.Size = item.MenuItem.Size;
                    }
                    // Calculate total price
                    viewModelCart.TotalPrice += menuitem.MenuItem.Price;
                    if (menuitem.AddOns != null)
                    {
                        foreach (var addon in menuitem.AddOns)
                        {
                            viewModelCart.TotalPrice += addon.Price;
                        }
                    }
                }
                OrderInfo temp = OrderSerialize(viewModelCart);
                cart.OrderMenuItems = temp.OrderMenuItems;
                cart.TotalPrice     = temp.TotalPrice;
                await _context.SaveChangesAsync();

                return(Json(true));
            }
            return(Json(false));
        }