Esempio n. 1
0
        public IActionResult Add(int id)
        {
            if (HttpContext.Session.GetObjectFromJson <CartModelView>("cartModelView") == null)
            {
                CartModelView cartModelView = new CartModelView();

                cartModelView.Add(new Item()
                {
                    Dish     = IdentityContext.Dishes.Find(id),
                    Quantity = 1
                });

                HttpContext.Session.SetObjectAsJson("cartModelView", cartModelView);
            }
            else
            {
                CartModelView cartModelView = HttpContext.Session.GetObjectFromJson <CartModelView>("cartModelView");
                int           index         = ExistsInCart(id);
                if (index != -1)
                {
                    cartModelView.Items[index].Quantity++;
                }
                else
                {
                    cartModelView.Items.Add(new Item
                    {
                        Dish     = IdentityContext.Dishes.Find(id),
                        Quantity = 1
                    });
                }
                HttpContext.Session.SetObjectAsJson("cartModelView", cartModelView);
            }
            return(RedirectToAction("Index", "Menu"));
        }
        // GET: Cart/Create
        public ActionResult Create()
        {
            var viewmodel = new CartModelView {
                Products = ComicDB.GetStoreProducts().ToList()
            };

            return(View(viewmodel));
        }
Esempio n. 3
0
        public IActionResult Index()
        {
            CartModelView cartModelView = HttpContext.Session.GetObjectFromJson <CartModelView>("cartModelView");

            if (cartModelView == null)
            {
                return(RedirectToAction("empty", "Cart"));
            }
            return(View(cartModelView));
        }
        // GET: Cart/Delete/5
        public ActionResult Delete(int id)
        {
            var product = ComicDB.GetOrderProducts().First(x => x.Id == id);

            var viewmodel = new CartModelView {
                ProductO = product
            };

            return(View(viewmodel));
        }
        // GET: Cart
        public ActionResult Index()
        {
            var cart = ComicDB.GetCart(ComicDB.GetOrders().Last().OrdersId).ToList();

            var viewmodel = new CartModelView {
                Cart = cart
            };

            return(View(viewmodel));
        }
Esempio n. 6
0
        public IActionResult Index()
        {
            CartModelView cartModelView = HttpContext.Session.GetObjectFromJson <CartModelView>("cartModelView");

            if (cartModelView == null)
            {
                CartModelView emptyCart = new CartModelView();
                HttpContext.Session.SetObjectAsJson("cartModelView", emptyCart);
            }
            return(View());
        }
Esempio n. 7
0
        private int ExistsInCart(int id)
        {
            CartModelView cartModelView = HttpContext.Session.GetObjectFromJson <CartModelView>("cartModelView");

            for (int i = 0; i < cartModelView.Items.Count; i++)
            {
                if (cartModelView.Items[i].Dish.Id.Equals(id))
                {
                    return(i);
                }
            }
            return(-1);
        }
Esempio n. 8
0
        public IActionResult Remove(int id)
        {
            CartModelView cart  = HttpContext.Session.GetObjectFromJson <CartModelView>("cartModelView");
            int           index = ExistsInCart(id);

            if (index != -1)
            {
                if (cart.Items[index].Quantity > 1)
                {
                    cart.Items[index].Quantity--;
                }
                else
                {
                    cart.Items.RemoveAt(index);
                }
            }
            HttpContext.Session.SetObjectAsJson("cartModelView", cart);
            return(RedirectToAction("Index"));
        }
        public ActionResult Create(CartModelView collection)
        {
            try
            {
                var pro     = ComicDB.GetStoreProduct(collection.Product.Id);
                var product = new OrdersProduct
                {
                    Name          = pro.Name,
                    Price         = pro.Price,
                    InventorySize = 1,
                    OrdersId      = ComicDB.GetOrderss()
                };

                ComicDB.ProuductAdded(collection.Product);
                ComicDB.AddOrderProduct(product);

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View());
            }
        }
Esempio n. 10
0
        public async Task <IActionResult> Order()
        {
            CartModelView cartModelView = HttpContext.Session.GetObjectFromJson <CartModelView>("cartModelView");

            if (cartModelView == null || cartModelView.Items.Count == 0)
            {
                return(RedirectToAction("Index"));
            }

            if (User.Identity.Name == null)
            {
                return(View("~/Views/Account/Login.cshtml"));
            }

            AppUser currentUser = await UserManager.FindByNameAsync(User.Identity.Name);

            Order newOrder =
                new Order
            {
                User        = currentUser,
                IsDelivered = false,
                OrderDate   = DateTime.Now.Date,
                OrderDishes = new List <OrderDish>(),
            };

            await IdentityContext.Orders.AddAsync(newOrder);

            foreach (Item item in cartModelView.Items)
            {
                newOrder.OrderDishes.Add(new OrderDish()
                {
                    Order  = newOrder,
                    Amount = item.Quantity,
                    Dish   = IdentityContext.Dishes.Include(d => d.Type).FirstOrDefault(d => d.Id == item.Dish.Id)
                });
            }
            await IdentityContext.OrderDishes.AddRangeAsync(newOrder.OrderDishes);

            newOrder.Sum = newOrder.OrderDishes.Sum(od => od.Amount * od.Dish.Price);


            List <OrderDish> pizzaOrderDishes =
                newOrder.OrderDishes.Where(od => od.Dish.Type.Description == "Pizza").OrderByDescending(od => od.Amount).ToList();

            if (currentUser.BonusPoints >= 100 &&
                pizzaOrderDishes.Count > 0)
            {
                newOrder.Sum            -= pizzaOrderDishes[0].Dish.Price;
                currentUser.BonusPoints -= 110;
                IdentityContext.Users.Update(currentUser);
            }


            if (await UserManager.IsInRoleAsync(currentUser, Roles.Premium.ToString()))
            {
                if (cartModelView.Items.Sum(i => i.Quantity) >= 3)
                {
                    newOrder.Sum = Math.Round(newOrder.Sum * 0.8m);
                }
                currentUser.BonusPoints += newOrder.OrderDishes.Sum(od => od.Amount) * 10;
            }

            await IdentityContext.SaveChangesAsync();

            CartModelView emptyCart = new CartModelView();

            HttpContext.Session.SetObjectAsJson("cartModelView", emptyCart);

            return(RedirectToAction("complete", newOrder));
        }