public async Task <IActionResult> Create(int productId, string userId, int quantity) { ApplicationUser user = await _user.Users.FirstOrDefaultAsync(u => u.Id == userId); var foundCart = await _dbContext.Carts.FirstOrDefaultAsync(c => c.OrderFulfilled == false && c.User == user); var lineItem = await _context.GetLineItemByProduct(foundCart.ID, productId); // updates the item quantity if the item is already in the cart if (lineItem != null) { lineItem.Quantity = (Quantity)quantity; await Edit(lineItem.ID, lineItem); } else { lineItem = new LineItem() { ProductID = productId, CartID = foundCart.ID, Quantity = (Quantity)quantity }; await _context.CreateLineItem(lineItem); } return(RedirectToAction("Index", "Products")); }