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