예제 #1
0
        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);
            }
        }