public void decreaseItemQuantity(string id)
        {
            shoppingCartID = GetCartID();

            var item = _cartItemRepository.GetById(id);

            if (item != null)
            {
                var cartItem =
                    _cartItemRepository.Find(predicate: x => x.cartId == shoppingCartID && x.ItemdId == item.ItemdId).FirstOrDefault();
                //var OrderItem =
                //   _productOrderRepository.Find(predicate: x => x.cart_id == shoppingCartID && x.item_id == item.ItemdId).FirstOrDefault();
                if (cartItem != null)
                {
                    if (cartItem.quantity == 1)
                    {
                        _cartItemRepository.Delete(cartItem);
                    }
                    else
                    {
                        cartItem.quantity -= 1;
                        _cartItemRepository.Update(model: cartItem);
                    }

                    // _productOrderRepository.Delete(model: OrderItem);
                }
                //dataContext.SaveChanges();
            }
        }
        public void WhenIDeleteACartItem_ThenItIsDeletedFromTheDatabase()
        {
            _cartItemRepository.Create(_cartItem1);
            CartItem retrievedCartItem = _cartItemRepository.GetCart(_cartItem1.Document.DocumentId, _cartItem1.CartId);

            _cartItemRepository.Delete(retrievedCartItem);
            CartItem deletedCartItem = _cartItemRepository.Entities.FirstOrDefault(c => c.Id == retrievedCartItem.Id);

            deletedCartItem.Should().BeNull();
        }
        public bool UpdateShoppingCart(CartItem cartItem, Guid userId)
        {
            ShoppingCart shoppingCart = GetShoppingCartByUserId(userId) ?? new ShoppingCart
            {
                UserId = userId
            };
            var cartItemTemp = shoppingCart.CartItems.FirstOrDefault(x => x.SetId == cartItem.SetId);

            if (cartItemTemp != null && cartItemTemp.Id > 0)
            {
                if (cartItem.Quantity == 0)
                {
                    shoppingCart.TotalQuantity -= cartItemTemp.Quantity;
                    shoppingCart.Total         -= cartItemTemp.Price;
                    shoppingCart.Discount      -= cartItemTemp.Discount;
                    CartItemRepository.Delete(cartItemTemp);
                    shoppingCart.CartItems.Remove(cartItemTemp);
                }
                else
                {
                    shoppingCart.Total         += (cartItem.Price - cartItemTemp.Price);
                    shoppingCart.Discount      += (cartItem.Discount - cartItemTemp.Discount);
                    shoppingCart.TotalQuantity += (cartItem.Quantity - cartItemTemp.Quantity);
                    cartItemTemp.Price          = cartItem.Price;
                    cartItemTemp.Quantity       = cartItem.Quantity;
                    cartItemTemp.Discount       = cartItem.Discount;
                    cartItemTemp.Timestamp      = DateTime.Now;
                }
            }
            else
            {
                shoppingCart.CartItems.Add(cartItem);
                shoppingCart.Total         += cartItem.Price;
                shoppingCart.Discount      += cartItem.Discount;
                shoppingCart.TotalQuantity += cartItem.Quantity;
            }
            return(_shoppingCartRepository.InsertOrUpdate(shoppingCart) != null);
        }