/// <summary>/// 添加Cookie/// </summary>/// <param name="gc">GoodsToCookie</param>public static int AddCookies(GoodsCookie gs){string userID = null;if (HttpContext.Current.session["hasLogin"] != null){userID = HttpContext.Current.Session["hasLogin"].ToString();//登錄}ShoppingMallContext db = new ShoppingMallContext();var cookies = HttpContext.Current.Request.Cookies["MyShoppingCart"]; //創建Cookie并命名if (cookies == null){string strCookie = gs.skuID + "-" + gs.count + ",";cookies = new HttpCookie("MyShoppingCart") //對象初始化{Expires = DateTime.Today.AddDays(1),//過期時間Value = strCookie//Cookie賦值};HttpContext.Current.Response.Cookies.Add(cookies);//添加進Cookieif (userID != null)//如果用戶登錄了{SkuShoppingCart sc = new SkuShoppingCart();//初始化購物車類sc.GoodsSkuID = gs.skuID;//完成之后給類的屬性賦值sc.ShoppingCartID = db.ShoppingCarts//根據用戶ID來找相對應的購物車ID.Where(f => f.UserID == userID).Select(f => f.ShoppingCartID).Single();sc.SkuCount = gs.Count;//統計數量db.SkuShoppingCarts.Add(sc);//添加進數據庫}return 1;}else{if (String.IsNullOrWhiteSpace(cookies.Value))//判斷Cookies里值為不為空{string strCookie = gs.skuID + "-" + gs.count + ",";cookies = new HttpCookie("MyShoppingCart") //對象初始化{Expires = DateTime.Today.AddDays(1),Value = strCookie};HttpContext.Current.Response.Cookies.Add(cookies);//添加進Cookieif(userID != null){SkuShoppingCart sc = new SkuShoppingCart();sc.GoodsSkuID = gs.skuID;//完成之后給類的屬性賦值sc.ShoppingCartID = db.ShoppingCarts//根據用戶ID來找相對應的購物車ID.Where(f => f.UserID == userID).Select(f => f.ShoppingCartID).Single();sc.SkuCount = gs.Count;//統計數量db.SkuShoppingCarts.Add(sc);//添加進數據庫}return 1;}else//返之{#region -----添加到字典-----Dictionary<int, int> dict = new Dictionary<int, int>();//初始化字典string goods = cookies.Value;//聲明一個string變量并賦值 為 Cookiegoods = goods.Substring(0, goods.Length - 1);//指定字符串長度string[] skuidArray = goods.Split(',');//拆解字符串并賦值給skuidArray數組int count = 0;//聲明一個Int變量foreach (var i in skuidArray)//迭代數組{if(i =="" || i == null)//如果沒有值{continue;//繼續}else//如果有{string[] strCont = i.Split('-');//拆解字符串int key = int.Parse(strCont[0]);//第一個int value = int.Parse(strCont[1]);//第二個//判斷字典里有沒有這個keyif (dict.ContainsKey(key)){dict[key] += value;//如果有就疊加}else//沒有{dict.Add(key, value);//添加進字典}}}#endregion#region ------- 字典判斷 -------if (dict.ContainsKey(gs.skuID))//如果字典里有這個ID{dict[gs.skuID] += gs.count;count += skuidArray.Count();//就讓他們的數量相加}else{dict.Add(gs.skuID, gs.count);count = skuidArray.Count() + 1;//如果沒有,就往字典(dict)添加一個新的}string countStr = "";foreach (var v in dict)//再迭代字典拼字符串{countStr += v.Key + "-" + v.Value + ",";//鍵值對}cookies = new HttpCookie(countStr){Expires = DateTime.Today.AddDays(1),Value = countStr};//拼好了添加到CookieHttpContext.Current.Request.Cookies.Add(cookies);if (userID != null)//如果用戶登錄了{SkuShoppingCart sc = new SkuShoppingCart();//初始化購物車類sc.GoodsSkuID = gs.skuID;//完成之后給類的屬性賦值sc.ShoppingCartID = db.ShoppingCarts//根據用戶ID來找相對應的購物車ID.Where(f => f.UserID == userID).Select(f => f.ShoppingCartID).Single();sc.SkuCount = gs.Count;//統計數量db.SkuShoppingCarts.Add(sc);//添加進數據庫}return count;//數量#endregion}}}
新聞熱點
疑難解答