private async Task <CartItem> GetCartItemValid(Guid produtctId, CustomerCart cart, CartItem item = null) { if (item != null && produtctId != item.ProductId) { AddProcessingError("O item não corresponde ao informado"); return(null); } if (cart == null) { AddProcessingError("Carrinho não encontrado"); return(null); } var itemCart = await _context.CartItens .FirstOrDefaultAsync(c => c.CartId == cart.Id && c.ProductId == produtctId); if (itemCart == null || !cart.ExistingItemCart(itemCart)) { AddProcessingError("O Item não está no carrinho"); return(null); } return(itemCart); }
private void HandleExistingCart(CartItem item, CustomerCart cart) { var existingProcut = cart.ExistingItemCart(item); cart.AddItem(item); ValidateCart(cart); if (existingProcut) { _context.Update(cart.GetProductById(item.ProductId)); } else { _context.Add(item); } _context.CustomersCart.Update(cart); }