private async Task <CartItem> ValidateItem(Guid productId, CartCustomer cart, CartItem item = null) { if (item != null && productId != item.ProductId) { AddErrorInProcess("The item does not correspond to the informed"); return(null); } if (cart == null) { AddErrorInProcess("Cart not found"); return(null); } var itemCart = await _cartDbContext.CartItems .FirstOrDefaultAsync(i => i.CartId == cart.Id && i.ProductId == productId); if (itemCart == null || !cart.CartItemExisting(itemCart)) { AddErrorInProcess("The item is not in the cart"); return(null); } return(itemCart); }
private void ManipulateExistingCart(CartCustomer cart, CartItem item) { var productExisting = cart.CartItemExisting(item); cart.AddNewItem(item); ValidateCart(cart); if (productExisting) { _cartDbContext.CartItems.Update(cart.GetProductById(item.ProductId)); } else { _cartDbContext.CartItems.Add(item); } _cartDbContext.CartCustomers.Update(cart); }