Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }