public async Task <IActionResult> Edit(int id, [Bind("ID")] GroceryProductCart groceryProductCart) { if (id != groceryProductCart.ID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(groceryProductCart); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!GroceryProductCartExists(groceryProductCart.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(groceryProductCart)); }
public async Task <IActionResult> Create([Bind("ID")] GroceryProductCart groceryProductCart) { if (ModelState.IsValid) { _context.Add(groceryProductCart); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(groceryProductCart)); }
// GET: GroceryCart public async Task <IActionResult> Index() { GroceryProductCart model = null; if (User.Identity.IsAuthenticated) { var currentUser = _userManager.GetUserAsync(User).Result; model = await _context.GroceryProductCart.Include(x => x.GroceryCartProducts).ThenInclude(x => x.GroceryProducts).FirstOrDefaultAsync(x => x.ApplicationUserID == currentUser.Id); } else if (Request.Cookies.ContainsKey("cart_id")) { int existingCartID = int.Parse(Request.Cookies["cart_id"]); model = await _context.GroceryProductCart.Include(x => x.GroceryCartProducts).ThenInclude(x => x.GroceryProducts).FirstOrDefaultAsync(x => x.ID == existingCartID); } else { model = new GroceryProductCart(); } return(View(model)); }
public async Task <IActionResult> Details(int?id, int quantity, string category, string name, decimal price) { GroceryProductCart cart = null; if (User.Identity.IsAuthenticated) { var currentUser = await _userManager.GetUserAsync(User); cart = await _context.GroceryProductCart.Include(x => x.GroceryCartProducts).FirstOrDefaultAsync(x => x.ApplicationUserID == currentUser.Id); if (cart == null) { cart = new GroceryProductCart(); cart.ApplicationUserID = currentUser.Id; cart.DateCreated = DateTime.Now; cart.DateLastModified = DateTime.Now; _context.GroceryProductCart.Add(cart); } } else { if (Request.Cookies.ContainsKey("cart_id")) { int existingCartID = int.Parse(Request.Cookies["cart_id"]); cart = await _context.GroceryProductCart.Include(x => x.GroceryCartProducts).FirstOrDefaultAsync(x => x.ID == existingCartID); } if (cart == null) { cart = new GroceryProductCart { DateCreated = DateTime.Now, DateLastModified = DateTime.Now }; _context.GroceryProductCart.Add(cart); } } GroceryCartProduct product = cart.GroceryCartProducts.FirstOrDefault(x => x.GroceryProductID == id); if (product == null) { product = new GroceryCartProduct { DateCreated = DateTime.Now, DateLastModified = DateTime.Now, GroceryProductID = id ?? 0, Quantity = 0, Name = name, Price = price }; cart.GroceryCartProducts.Add(product); } product.Quantity += quantity; product.DateLastModified = DateTime.Now; await _context.SaveChangesAsync(); if (!User.Identity.IsAuthenticated) { Response.Cookies.Append("cart_id", cart.ID.ToString(), new Microsoft.AspNetCore.Http.CookieOptions { Expires = DateTime.Now.AddYears(1) }); } return(RedirectToAction("Index", "GroceryCart")); }