public async Task <ProductCart> AddToCart(ProductCart productCart, int quantity, string userId) { var cart = await GetByUser(userId); var existingProductCart = cart.ProductCarts.FirstOrDefault(x => x.ProductId == productCart.Product.Id); if (existingProductCart != null) { existingProductCart.Quantity += quantity; _productCartRepository.Update(existingProductCart); return(existingProductCart); } else { var newProductCart = new ProductCart { ProductId = productCart.Product.Id, CartId = cart.Id, Quantity = quantity }; await _productCartRepository.Add(newProductCart); return(newProductCart); } }