Exemple #1
0
        public ActionResult GetCart(CartFromDetail CFD)
        {
            List <CartViewModel> cartViewItems = new List <CartViewModel>();

            if (Session["CartView"] == null)
            {
                CartViewModel cart = new CartViewModel
                {
                    CartID = Guid.NewGuid().ToString(),


                    ProductID    = CFD.ProductID,
                    ProductName  = db.Products.Find(CFD.ProductID).ProductName,
                    CategoryName = db.Categories.Find(db.Products.Find(CFD.ProductID).CategoryID).CategoryName,
                    ColorID      = CFD.ColorID,
                    SizeID       = CFD.SizeID,
                    Size         = db.Sizes.Find(CFD.SizeID).Length,
                    ColorName    = db.Colors.Find(CFD.ColorID).ColorName,
                    ColorImg     = db.Colors.Find(CFD.ColorID).ColorImg,
                    Quantity     = CFD.Count,
                    Price        = db.Products.Find(CFD.ProductID).UnitPrice
                };

                cartViewItems.Add(cart);

                Session["CartView"] = cartViewItems;
            }
            else
            {
                cartViewItems = (List <CartViewModel>)Session["CartView"]; //將Session中的購物車記錄還原成集合
                if (!cartViewItems.Exists(x => x.ProductID == CFD.ProductID && x.ColorID == CFD.ColorID && x.SizeID == CFD.SizeID))
                {
                    CartViewModel cart = new CartViewModel
                    {
                        ProductID    = CFD.ProductID,
                        CartID       = Guid.NewGuid().ToString(),
                        ProductName  = db.Products.Find(CFD.ProductID).ProductName,
                        CategoryName = db.Categories.Find(db.Products.Find(CFD.ProductID).CategoryID).CategoryName,
                        ColorID      = CFD.ColorID,
                        ColorName    = db.Colors.Find(CFD.ColorID).ColorName,
                        ColorImg     = db.Colors.Find(CFD.ColorID).ColorImg,
                        SizeID       = CFD.SizeID,
                        Size         = db.Sizes.Find(CFD.SizeID).Length,
                        Quantity     = CFD.Count,
                        Price        = db.Products.Find(CFD.ProductID).UnitPrice
                    };

                    cartViewItems.Add(cart);
                }
                else
                {
                    cartViewItems.Where(x => x.ProductID == CFD.ProductID && x.ColorID == CFD.ColorID && x.SizeID == CFD.SizeID).ToList()[0].Quantity += CFD.Count;
                }

                Session["CartView"] = cartViewItems;
            }
            var data = JsonConvert.SerializeObject(cartViewItems);

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
Exemple #2
0
        public int  DetailToCartButton(CartFromDetail CFD)
        {
            List <Cart> cartItems = new List <Cart>();

            if (Session["Cart"] == null)
            {
                Cart cart = new Cart
                {
                    RecordID = 1,

                    CartID = Guid.NewGuid().ToString(),

                    ProductID = CFD.ProductID,
                    ColorID   = CFD.ColorID,
                    SizeID    = CFD.SizeID,
                    Quantity  = CFD.Count,
                    Price     = CFD.Price,
                };

                cartItems.Add(cart);

                Session["Cart"]          = cartItems;
                Session["CartItemCount"] = cartItems.Count;
            }
            else
            {
                cartItems = (List <Cart>)Session["Cart"]; //將Session中的購物車記錄還原成集合

                Cart cart = new Cart
                {
                    RecordID = cartItems.Count() + 1,

                    ProductID = CFD.ProductID,
                    ColorID   = CFD.ColorID,
                    SizeID    = CFD.SizeID,
                    Quantity  = CFD.Count,
                    Price     = CFD.Price,
                };

                cartItems.Add(cart);

                Session["Cart"]          = cartItems;
                Session["CartItemCount"] = cartItems.Count;
            }

            return(cartItems.Count);
        }