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)); } }
/// <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); }
/// <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); } } }
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); }
/// <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 }); } } }
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); }
/// <summary> /// 从购物车中获取指定的商品 /// </summary> /// <param name="sku">货品编号(唯一)</param> /// <returns>返回购物车中指定SKU的商品</returns> public ShoppingCartItem FindItem(string sku) { return(CartItems.Find(p => p.SKU == sku)); }