日期:2014-05-17 浏览次数:20492 次
using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using river.Data;
namespace river
{
public class cs_cart_cookie
{
public static char Sp = '|';
public static HttpCookie getCartCookie()
{
//往购物车中添加商品
HttpCookie hc = null;
HttpRequest Request = HttpContext.Current.Request;
if (Request.Cookies["ShoppingCart"] == null)
{
//如果Cookies中不存在ShoppingCart,则创建
hc = new HttpCookie("ShoppingCart");
}
else
{
//如果Cookies中存在ShoppingCart,则取出
hc = Request.Cookies["ShoppingCart"];
}
return hc;
}
public static int getCartItemCount()
{
int count = 0;
HttpCookie hc = getCartCookie();
List<ShoppingCart> list = new List<ShoppingCart>();
//循环从购物车中取出物品添加到集合
foreach (string item in hc.Values)
{
if (item != null)
{
count += int.Parse(hc[item].Split(Sp)[1]);
}
}
return count;
}
public static List<ShoppingCart> getCartList()
{
HttpCookie hc = getCartCookie();
List<ShoppingCart> list = new List<ShoppingCart>();
//循环从购物车中取出物品添加到集合
foreach (string item in hc.Values)
{
if (item != null)
{
try
{
string[] w = hc[item].Split(Sp);
ShoppingCart gwc = new ShoppingCart();
DataRow dr = DB.getDr("select price,title,number,picture from products where id=" + int.Parse(w[0]));
if (dr != null)
{
gwc.ProductID = int.Parse(w[0]);
gwc.Qty = int.Parse(w[1]);
gwc.Size = w[2];
gwc.Color = w[3];
gwc.ProductName = Convert.ToString(dr["title"]);
gwc.ProductNumber = Convert.ToString(dr["number"]);
gwc.Price = Convert.ToDecimal(dr["price"]);
gwc.ProductPicture = Convert.ToString(dr["picture"]);
list.Add(gwc);
}
}
catch
{
}
}
}
list.Sort();
return list;
}
public static void AddToCart(int productID,int qty,string Size,string color)
{
HttpCookie hc = getCartCookie();
bool flag = true;//标记在购物车中是否存在本次选择的物品
//在购物车的Cookies中查找是否存在这次要选择的物品
foreach (string item in hc.Values)
{
if (item == productID.ToString())
{
flag = false;
break;
}
}
color = HttpUtility.UrlEncode(color);
if (flag)
{
//如果选择的内容在购物车中没有,则创建一个新的子键
hc.Values.Add(productID.ToString(), productID.ToString() + "|" + qty + "|" + Size + "|"+color);
}
else
{
//如果选择的内容在购物车中没,则删除原来的,添加一个新的
int num = int.Parse(hc.Values[productID.ToString()].Split(Sp)[1]) + qty;
hc.Values.Remove(productID.ToString());
hc.Values.Add(productID.ToString(), productID + "|