ASP.NET購物車Cookie擷取,建立,添加,更新,刪除的用法

來源:互聯網
上載者:User

標籤:http   os   io   資料   for   art   ar   時間   

#region 添加購物車
public void GetShoppingCart(int skuId, int quanlity)
{

  HttpCookie cookie = HttpContext.Current.Request.Cookies["myCart"];//擷取cookie

     var reg = Session["userInfo"] as Registration; 使用者登入狀態

  #region  未登入狀態時

     if(reg == null)

  {

    if(cookie == null) //cookie為null時

           {

      cookie = new HttpCookie("myCart");//建立cookie 

                 cookie.Values.Add(skuId.ToString(), quanlity.ToString());//添加Cookie

                 cookie.Expires = DateTime.Today.AddDays(30);//設定Cookie的到期日期或時間

      Response.Cookies.Add(cookie);//將指定的cookie添加到此Cookie集合中

           }

          else if(cookie != null)

          {

      if(cookie.Values.AllKeys.Contains(skuId.ToString()))//判斷cookie中是否存在此鍵

                 {

        cookie.Values.Add(skuId.ToString(), quanlity.ToString());

        cookie.Expires = DateTime.Today.AddDays(30);

                      Response.Cookies.Add(cookie);

                 }

                 else

                 {

        cookie.Values[skuId.ToString()] = (Int32.Parse(cookie.Values[skuId.ToString()]) + quanlity).ToString();

        cookie.Expires = DateTime.Today.AddDays(30);

        Response.Cookies.Add(cookie);  

                 }

          }

     }

     #endregion

}

#endregion

 

 

#region 更新購物車
public void UpdateShoppingCart(int skuId, int quanlity)
{

  HttpCookie cookie = HttpContext.Current.Request.Cookies["myCart"];

  Sku skuOne = CommodityInfoManager.GetSkuOneBySkuId(skuId.ToString());

     var reg = Session["userInfo"] as Registration;

     if(reg != null)//登入使用者帳號時,直接修改資料庫中的購物車的數量

     {

     ShoppingCarInfoManager.UpdateShoppingCartBySkuIdAndRegisterId(skuId, reg.RegisterId, quanlity); 

     }

     else

     {

    cookie.Values[skuId.ToString()] = quanlity.ToString();//更新cookie中某一項的對應的cookie的值

           cookie.Expires = DateTime.Today.AddDays(30);

           Response.Cookies.Add(cookie);

     }

}

#endregion

 

#region  刪除購物車某一個商品

public void DeleteSkuId(int skuId, out int cookiState)
{

  cookiState = 1;

      HttpCookie cookie = HttpContext.Current.Request.Cookies["myCart"];

      var reg = Session["userInfo"] as Registration; 

  #region 登入帳號
  if (reg != null)
  {
    ShoppingCart shoppingCart = ShoppingCarInfoManager.GetShoppingCartById(skuId, reg.RegisterId);
    if (shoppingCart != null)
    {
    ShoppingCarInfoManager.DeletedShoppingCartBySkuIdAndRegisertId(skuId, reg.RegisterId);
    }
  }
  #endregion

  #region 未登入帳號 

  else
  {

    if(cookie != null)

           {

      if(cookie.Values.AllKeys.Length != 1)//判斷cookie裡有很多的索引值對

                 {

        if(cookie.Values.AllKeys.Contains(skuId.ToString()))

        {

          cookie.Values.Remove(skuId.ToString());//移除cookie中指定的某一項

          cookie.Expires = DateTime.Today.AddDays(30);

          Response.Cookies.Add(cookie);

                      }

                 }

      else

      {

        cookie.Expires = DateTime.Now.AddDays(-1);//清除cookie  

        cookiState = 0;

          Response.Cookies.Add(cookie);  

                 }

           }

     }

  #endregion 

}

#endregion

 

#region 清空購物車
public void DeletedShoppingCart(out int cookiState)
{
  cookiState = 1;
  HttpCookie cookie = HttpContext.Current.Request.Cookies["myCart"];
  var reg = Session["userInfo"] as Registration;
  if (reg != null)//清除購物車
  {
    List<ShoppingCart> shoppingCarts =                                ShoppingCarInfoManager.GetShoppingCartsByRegisterId(reg.RegisterId);
    foreach (var r in shoppingCarts)
    {
      ShoppingCarInfoManager.DeletedShoppingCartBySkuIdAndRegisertId(r.SkuId, reg.RegisterId);
    }
  }
  else //清除cookie
  {
    if (cookie != null)
    {
      cookie.Expires = DateTime.Now.AddDays(-1);
      cookiState = 0;
      Response.Cookies.Add(cookie);
    }
  }
}
#endregion

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.