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)); }
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)); }
public IActionResult Index() { CartModelView cartModelView = HttpContext.Session.GetObjectFromJson <CartModelView>("cartModelView"); if (cartModelView == null) { CartModelView emptyCart = new CartModelView(); HttpContext.Session.SetObjectAsJson("cartModelView", emptyCart); } return(View()); }
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); }
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()); } }
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)); }