public async Task <IActionResult> AddToCart(int productId, string returnUrl) { User user = await _context.Users.Include(up => up.UserProducts).FirstAsync(u => u.Email.Equals(User.FindFirstValue(ClaimTypes.Email))); Product productToAdd = await _context.Products.Include(b => b.Brand).FirstAsync(p => p.ProductId == productId); foreach (UserProduct item in user.UserProducts) { if (item.ProductId == productId) { return(RedirectToAction("Catalog", "Home")); } } if (productToAdd != null) { if (user.UserProducts == null) { user.UserProducts = new List <UserProduct>(); } user.UserProducts.Add(new UserProduct() { ProductId = productToAdd.ProductId, Product = productToAdd, UserId = user.UserId, User = user }); _context.Update(user); await _context.SaveChangesAsync(); } return(RedirectToAction("Catalog", "Home")); }
public async Task <IActionResult> Edit(int id, [Bind("BrandId,BrandName")] Brand brand) { if (id != brand.BrandId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(brand); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BrandExists(brand.BrandId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(brand)); }
public async Task <IActionResult> Edit(int id, [Bind("OrderId,OrderDate,UserId,UserName")] Order order) { if (id != order.OrderId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(order); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!OrderExists(order.OrderId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(order)); }
public async Task <IActionResult> DeleteFromCart(int productId) { User user = await _context.Users .Include(u => u.UserProducts) .ThenInclude(p => p.Product) .FirstAsync(u => u.Email.Equals(User.FindFirstValue(ClaimTypes.Email))); foreach (UserProduct up in user.UserProducts) { if (up.ProductId == productId) { user.UserProducts.Remove(up); break; } } _context.Update(user); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(GetMyCart))); }