Exemple #1
0
    public void AddItem(Guid itemId, string name, decimal price)
    {
        CartItem cartItem = CartItems.Find(x => x.ItemId == itemId);

        if (cartItem != null)
        {
            cartItem.Quantity += 1;
        }
        else
        {
            CartItems.Add(new CartItem(itemId, name, price, 1));
        }
    }
Exemple #2
0
        /// <summary>
        /// Usunięcie elementu z koszyka na podstawie nr id
        /// </summary>
        /// <param name="id"></param>
        public bool DeleteFromCartById(int id)
        {
            ElectronicDeviceViewModel temp = CartItems.Find(x => x.ID == id);

            if (temp is null)
            {
                return(false);
            }

            TotalPrice -= temp.Price;
            NumberOfElements--;
            CartItems.Remove(temp);
            return(true);
        }
Exemple #3
0
        /// <summary>
        /// 加入一项到购物车
        /// </summary>
        /// <param name="cartItem"></param>
        public void Add(ShoppingCartItem cartItem)
        {
            lock (_sync)
            {
                //Add options logic here
                ShoppingCartItem existsItem = CartItems.Find(p => p.SKU == cartItem.SKU);

                if (existsItem != null)
                {
                    existsItem.Quantity += cartItem.Quantity;
                }
                else
                {
                    CartItems.Add(cartItem);
                }
            }
        }
Exemple #4
0
        public int AddProduct(IProduct product, int amount = 1)
        {
            bool exist = CartProductIds.Contains(product.GetId());

            if (exist)
            {
                ICartItem item = CartItems.Find(cartItem => cartItem.GetProduct().Equals(product));
                if (item == null)
                {
                    throw new InvalidOperationException("Item exist in HashSet but not in CartItems");
                }
                return(item.IncreaseAmountOn(amount));
            }

            CartProductIds.Add(product.GetId());
            CartItems.Add(new CartItem(product, this, amount));
            return(amount);
        }
Exemple #5
0
 /// <summary>
 /// 加入或更新购物车中的一项
 /// </summary>
 /// <param name="sku"></param>
 /// <param name="quantity"></param>
 public void AddorUpdate(string sku, int quantity)
 {
     lock (_sync)
     {
         ShoppingCartItem existsItem = CartItems.Find(p => p.SKU == sku);
         if (existsItem != null)
         {
             existsItem.Quantity += quantity;
         }
         else
         {
             CartItems.Add(new ShoppingCartItem
             {
                 SKU      = sku,
                 Quantity = quantity
             });
         }
     }
 }
Exemple #6
0
        public int RemoveProduct(IProduct product, int amount = 1)
        {
            if (!CartProductIds.Contains(product.GetId()))
            {
                throw new InvalidOperationException("No such product in a cart");
            }

            ICartItem item = CartItems.Find(cartItem => cartItem.GetProduct().Equals(product));

            if (item == null)
            {
                throw new InvalidOperationException("Item exist in HashSet but not in CartItems");
            }

            if (item.GetAmount() != amount)
            {
                return(item.DecreaseAmountOn(amount));
            }

            // here item should be deleted
            CartProductIds.Remove(product.GetId());
            CartItems.RemoveAll(cartItem => cartItem.GetProduct().Equals(product));
            return(0);
        }
Exemple #7
0
 /// <summary>
 /// 从购物车中获取指定的商品
 /// </summary>
 /// <param name="sku">货品编号(唯一)</param>
 /// <returns>返回购物车中指定SKU的商品</returns>
 public ShoppingCartItem FindItem(string sku)
 {
     return(CartItems.Find(p => p.SKU == sku));
 }