?? cartitem.cs
字號:
?using System;
using System.Data;
using System.Collections.Generic;
/// <summary>
/// 購物籃的數據類
/// </summary>
[Serializable]
public class CartItem
{
public CartItem(){ }
private Dictionary<int, CartItemInfo> cartItems = new Dictionary<int, CartItemInfo>();
/// <summary>
/// 計算購物籃中圖書的總價格
/// </summary>
public decimal Total
{
get
{
decimal total = 0;
foreach (CartItemInfo item in cartItems.Values)
total += item.Price * item.Quantity;
return total;
}
}
/// <summary>
/// 更新購物籃中圖書的數量
/// </summary>
/// <param name="itemId">籃中的圖書ID</param>
/// <param name="qty">數量</param>
public void SetQuantity(int itemId, int qty)
{
cartItems[itemId].Quantity = qty;
}
/// <summary>
/// 返回籃中圖書總數
/// </summary>
public int Count
{
get { return cartItems.Count; }
}
/// <summary>
/// 添加圖書到購物籃
/// 當添加圖書到購物籃時,購物籃中圖書總量隨之增加
/// </summary>
/// <param name="itemId">要增加的圖書的ID</param>
public void Add(int itemId)
{
CartItemInfo cartItem;
//首先判斷此商品是否已經在購物籃中
//如果沒有,則添加,有則只對其數量加1
if (!cartItems.TryGetValue(itemId, out cartItem))
{
Cart item = new Cart();
ItemInfo data = item.GetItem(itemId);
if (data != null)
{
CartItemInfo newItem = new CartItemInfo(itemId, data.Name, 1, (decimal)data.Price, data.SupplierId, data.ProductId);
cartItems.Add(itemId, newItem);
}
}
else
cartItem.Quantity++;
}
/// <summary>
/// 添加一個圖書實體類到購物籃
/// 添加完成后,要更新數量
/// </summary>
/// <param name="item">Item to add</param>
public void Add(CartItemInfo item)
{
CartItemInfo cartItem;
if (!cartItems.TryGetValue(item.ItemId, out cartItem))
cartItems.Add(item.ItemId, item);
else
cartItem.Quantity += item.Quantity;
}
/// <summary>
/// 移除購物籃中的某書
/// </summary>
/// <param name="itemId">要移除的書的ID</param>
public void Remove(int itemId)
{
cartItems.Remove(itemId);
}
/// <summary>
/// 返回購物籃中的所有圖書
/// </summary>
/// <returns>圖書列表信息</returns>
public ICollection<CartItemInfo> CartItems
{
get { return cartItems.Values; }
}
/// <summary>
/// 轉換購物籃中信息到訂單中
/// </summary>
/// <returns>A new array of order line items</returns>
public LineItemInfo[] GetOrderLineItems()
{
// 創建一個訂單項目數組
LineItemInfo[] orderLineItems = new LineItemInfo[cartItems.Count];
int lineNum = 0;
//遍歷購物籃中的每個項目,每個都生成一個新的訂單項目
foreach (CartItemInfo item in cartItems.Values)
orderLineItems[lineNum] = new LineItemInfo(item.ItemId, item.Name, ++lineNum, item.Quantity, item.Price);
return orderLineItems;
}
/// <summary>
/// 清空購物籃
/// </summary>
public void Clear()
{
cartItems.Clear();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -