asp.net cookies 购物车

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Collections;

namespace LSWY.TOOS
{
    public class ShoppingCart
    {
        HttpCookie cookie;
        public ShoppingCart()
        {
            if (HttpContext.Current.Request.Cookies["ShoppingCart"] == null)
            {
                cookie = new HttpCookie("ShoppingCart");
            }
            else
            {
                cookie = HttpContext.Current.Request.Cookies["ShoppingCart"];
            }
            cookie.Expires = DateTime.Now.AddHours(3);
        }
        /// <summary>
        ///查看购物车是否含有产品
        /// </summary>
        /// <returns></returns>
        public bool isHasPro()
        {
            return cookie.HasKeys;
        }
        /// <summary>
        /// 购物车是否包含该商品
        /// </summary>
        /// <param name="proId">商品Id</param>
        /// <returns></returns>
        public bool isHasPro(int proId)
        {
            return cookie[proId.ToString()] != null ? true : false;
        }
        /// <summary>
        /// 添加商品
        /// </summary>
        /// <param name="productId">商品Id</param>
        /// <param name="quantity">商品数量</param>
        public void AddToShopping(int productId, int quantity)
        {
            if (isHasPro(productId))
            {
                string[] pro = cookie[productId.ToString()].Split('|');
                int num = Convert.ToInt32(pro[1]) + quantity;
                cookie[productId.ToString()] = productId + "|" + num;
            }
            else
            {
                cookie[productId.ToString()] = productId + "|" + quantity;
            }
            HttpContext.Current.Response.Cookies.Add(cookie);
        }
        /// <summary>
        /// 删除商品
        /// </summary>
        /// <param name="productId">商品Id</param>
        public void deleteToShopping(int productId)
        {
            if (isHasPro(productId))
            {
                cookie.Values.Remove(productId.ToString());
                HttpContext.Current.Response.Cookies.Add(cookie);
            }
        }
        /// <summary>
        /// 删除购物车
        /// </summary>
        public void clearShopping()
        {
            if (isHasPro())
            {
                foreach (var name in cookie.Values.AllKeys)
                {
                    cookie.Values.Remove(name);
                }
            }
            cookie.Expires = DateTime.MinValue;
            HttpContext.Current.Response.Cookies.Add(cookie);
        }
        /// <summary>
        /// 返回一个列表,列表的每一项是个一维的string数组
        /// </summary>
        /// <returns></returns>
        public ArrayList GetList()
        {
            ArrayList list = new ArrayList();
            if (isHasPro())
            {
                foreach (var name in cookie.Values.AllKeys)
                {
                  list.Add(cookie[name].Split('|'));
                }
            }
            return list;
        }
    }
}

posted on 2011-07-05 23:43  人渐人爱  阅读(482)  评论(0)    收藏  举报

导航