?? shoppingcart.cs
字號:
using System;
using System.Data;
using System.Data.SqlClient;
namespace eshop.BLL
{
/// <summary>
/// ShoppingCart 的摘要說明。
/// </summary>
public class ShoppingCart
{
public ShoppingCart()
{
}
public void AddItem(string cartId, int productId, int quantity)
{
SqlParameter[] para = {
new SqlParameter("@cartId", cartId),
new SqlParameter("@productId", productId),
new SqlParameter("@quantity", quantity)
};
DAL.SQLHelper.ExecuteNonQuery(DAL.SQLHelper.CONN_STRING, CommandType.StoredProcedure,
"ShoppingCartAddItem", para);
}
public SqlDataReader GetItems(string cartId)
{
SqlParameter[] para = {
new SqlParameter("@cartId", cartId)
};
return DAL.SQLHelper.ExecuteReader(DAL.SQLHelper.CONN_STRING, CommandType.StoredProcedure,
"ShoppingCartList", para);
}
public void MigrateCart(string originalCartId, string newCartId)
{
SqlParameter[] para = {
new SqlParameter("@originalCartId", originalCartId),
new SqlParameter("@newCartId", newCartId)
};
DAL.SQLHelper.ExecuteNonQuery(DAL.SQLHelper.CONN_STRING, CommandType.StoredProcedure,
"ShoppingCartMigrate", para);
}
public void UpdateItem(string cartId, int productId, int quantity)
{
if (quantity < 0)
{
throw new Exception("Quantity can't be negative");
}
SqlParameter[] para = {
new SqlParameter("@cartId", cartId),
new SqlParameter("@productId", productId),
new SqlParameter("@quantity", quantity)
};
DAL.SQLHelper.ExecuteNonQuery(DAL.SQLHelper.CONN_STRING, CommandType.StoredProcedure,
"ShoppingCartUpdate", para);
}
public void RemoveItem( string cartId, int productId)
{
SqlParameter[] para = {
new SqlParameter("@cartId", cartId),
new SqlParameter("@productId", productId)
};
DAL.SQLHelper.ExecuteNonQuery(DAL.SQLHelper.CONN_STRING, CommandType.StoredProcedure,
"ShoppingCartRemoveItem", para);
}
public int GetItemCount(string cartId)
{
object m_DBNull = Convert.DBNull;
SqlParameter[] para = {
new SqlParameter("@cartId", cartId),
new SqlParameter("@ItemCount", SqlDbType.Int, 4, ParameterDirection.Output,
true, 0, 0, "", DataRowVersion.Default, m_DBNull)
};
try
{
DAL.SQLHelper.ExecuteNonQuery(DAL.SQLHelper.CONN_STRING, CommandType.StoredProcedure,
"ShoppingCartItemCount", para);
}
catch
{
throw;
}
return Convert.ToInt32(para[1].Value);
}
public decimal GetTotal(string cartId)
{
//輸出參數(shù)初始化
object m_DBNull = Convert.DBNull;
SqlParameter[] para = {
new SqlParameter("@cartId", cartId),
new SqlParameter("@TotalCost", SqlDbType.Money, 8, ParameterDirection.Output,
true, 0, 0, "", DataRowVersion.Default, m_DBNull)
};
try
{
DAL.SQLHelper.ExecuteNonQuery(DAL.SQLHelper.CONN_STRING, CommandType.StoredProcedure,
"ShoppingCartTotal", para);
}
catch
{
throw;
}
return Convert.ToDecimal(para[1].Value);
}
public void EmptyCart(string cartId)
{
SqlParameter[] para = {
new SqlParameter("@cartId", cartId)
};
DAL.SQLHelper.ExecuteNonQuery(DAL.SQLHelper.CONN_STRING, CommandType.StoredProcedure,
"ShoppingCartEmpty", para);
}
public String GetShoppingCartId()
{
// 獲得HTTP請求的HttpContext實例
System.Web.HttpContext context = System.Web.HttpContext.Current;
// 如果用戶已通過驗證,則返回其用戶編號作為CartId
if (context.User.Identity.Name != "")
{
return context.User.Identity.Name;
}
// 如果請求用戶為匿名,則創(chuàng)建臨時的CartId
if (context.Request.Cookies["eshop_CartID"] != null)
{
return context.Request.Cookies["eshop_CartID"].Value;
}
else
{
// 生成GUID
Guid tempCartId = Guid.NewGuid();
// 將GUID保存到Cookie
context.Response.Cookies["eshop_CartID"].Value = tempCartId.ToString();
// 返回臨時CartId
return tempCartId.ToString();
}
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -