MvcBookStore/Models/shoppingCart.cs

(开头部分) 8KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MvcBookStore.Models
{
    public class ShoppingCart:IShoppingCart
    {
          //存放购物车ID
        public string ShoppingCartId { get; set; }
        public const string CartSessionKey = "CardId";//定义一个字符串常量,赋值为CardId
        //获取临时购物车ID,购物车唯一id
        public string GetCartId(HttpContextBase c)
        {
            //如果Session[CartSessionKey]为空,给其赋值,如果不为空,返回作为唯一的购物车id
            if (c.Session[CartSessionKey] == null)
            {
                if (!string.IsNullOrWhiteSpace(c.User.Identity.Name))//如果已存在当前用户
                {
                    c.Session[CartSessionKey] = c.User.Identity.Name;//将当前用户的标识名称赋值给c.Session[CartSessionKey]
                }
                else
                {
                    //如果未登录,则生成一个临时的全局变量,赋值给c.Session[CartSessionKey]
                    Guid tempCartId = Guid.NewGuid();
                    c.Session[CartSessionKey] = tempCartId.ToString();
                }
            }
            //c.Session[CartSessionKey]赋值给全局变量ShoppingCartId作为购物车标识
            ShoppingCartId = c.Session[CartSessionKey].ToString();
            return ShoppingCartId;//返回购物车的唯一标识
 
        }

        
        //添加到购物车,数量加1或增加行
        public void AddToCart(int id)
        {            
            using (MvcBookStoreEntities db = new MvcBookStoreEntities())
            {
                //获取购物车中当前用户的这本书的记录
                var cartItem = db.Carts.Include("Books").SingleOrDefault(c => c.CartId == ShoppingCartId && c.BookId == id);
                if (cartItem == null)//如果不存在这本书的记录,则增加一行
                {
                    cartItem = new Carts
                    {
                        BookId = id,
                        CartId = ShoppingCartId,
                        Count = 1,
                        DateCreated = DateTime.Now
                    };
                    db.Carts.Add(cartItem);
                }
                else//否则只需要在原记录的Count字段+1
                { 
                    cartItem.Count++; 
                }
                db.SaveChanges();
            }
后面还有 155 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。