Esempio n. 1
0
 //載入購物車
 public ActionResult LoadCart()
 {
     //會員
     if (Session["IsLogin"] != null || Request.Cookies["IsLogin"] != null)
     {
         List <CartItem> cart;
         int             uid      = int.Parse(Request.Cookies["upid"].Value);
         var             usercart = db.Carts.Where(c => c.UserID == uid);
         if (usercart.Count() > 0)
         {
             //把db.cart內容回傳cart>
             cart = ProductMethod.Cart(uid).ToList();
             return(Json(cart, JsonRequestBehavior.AllowGet));
         }
         else
         {
             return(Json(0, JsonRequestBehavior.AllowGet));
         }
     }
     //非會員
     else
     {
         if (Session["cart"] != null)
         {
             return(Json((List <CartItem>)Session["cart"], JsonRequestBehavior.AllowGet));
         }
         else
         {
             List <CartItem> empty = new List <CartItem>();
             return(Json(empty, JsonRequestBehavior.AllowGet));
         }
     }
 }
Esempio n. 2
0
        public ActionResult Detail()
        {
            if (Session["recent"] != null)
            {
                List <int> recent = (List <int>)Session["recent"];

                List <CartItem> citems = new List <CartItem>();
                CartItem        citem;

                foreach (var pd in recent)
                {
                    decimal sprice;
                    string  activityname;
                    if (db.ActivityProducts.Where(a => a.ProductID == pd).Count() > 0)
                    {
                        sprice       = db.ActivityProducts.Where(a => a.ProductID == pd && a.Activity.EndDate >= DateTime.Now).FirstOrDefault().Activity.DiscountMethod.Discount;
                        activityname = db.ActivityProducts.Where(a => a.ProductID == pd && a.Activity.EndDate >= DateTime.Now).FirstOrDefault().Activity.ActivityName;
                    }
                    else
                    {
                        sprice       = 0;
                        activityname = null;
                    }
                    citem = new CartItem()
                    {
                        ProductID    = pd,
                        ProductName  = db.Products.Find(pd).ProductName,
                        UnitPrice    = db.Products.Find(pd).UnitPrice,
                        SUnitPrice   = Convert.ToInt32(Math.Floor(sprice * db.Products.Find(pd).UnitPrice)),
                        ActivityName = activityname
                    };
                    citems.Add(citem);
                }

                ViewBag.recent = citems.ToList();
            }

            ViewBag.paymethod = db.PayMethods.ToList();
            if (Session["IsLogin"] != null || Request.Cookies["IsLogin"] != null)
            {
                List <CartItem> cart;
                int             uid      = int.Parse(Request.Cookies["upid"].Value);
                var             usercart = db.Carts.Where(c => c.UserID == uid).ToList();
                if (usercart.Count() > 0)
                {
                    cart = ProductMethod.Cart(uid);
                    Session.Add("check", cart);
                    return(View(cart));
                }
                else
                {
                    cart = new List <CartItem>();
                    return(View(cart));
                }
            }
            else
            {
                return(RedirectToAction("Index", "Login", new { area = "Members" }));
            }
        }
Esempio n. 3
0
        public ActionResult ChangeQty(int id, int cid, int sid, int qty)
        {
            List <CartItem> cart;
            int             uid      = int.Parse(Request.Cookies["upid"].Value);
            var             sameitem = db.Carts.Where(c => c.UserID == uid && c.ProductID == id && c.ProductColorID == cid && c.ProductSizeID == sid).First();

            sameitem.Quantity        = qty;
            db.Entry(sameitem).State = System.Data.Entity.EntityState.Modified;
            db.SaveChanges();
            cart = ProductMethod.Cart(uid);
            return(Json(cart, JsonRequestBehavior.AllowGet));
        }
Esempio n. 4
0
        public ActionResult RemoveCart(int id, int cid, int sid)
        {
            List <CartItem> cart;
            int             uid      = int.Parse(Request.Cookies["upid"].Value);
            var             cartitem = db.Carts.Where(c => c.UserID == uid && c.ProductID == id && c.ProductColorID == cid && c.ProductSizeID == sid).First();

            db.Carts.Remove(cartitem);
            db.SaveChanges();
            var usercart = db.Carts.Where(c => c.UserID == uid).ToList();

            if (usercart.Count() > 0)
            {
                //把db.cart內容回傳cart>
                cart = ProductMethod.Cart(uid);
                return(Json(cart, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(0, JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 5
0
        //加入購物車
        public ActionResult AddCart(CartItem item)
        {
            List <CartItem> cart;

            item.ProductName = db.Products.Find(item.ProductID).ProductName;
            item.ColorName   = db.Colors.Find(item.ColorID).ColorName;
            item.SizeName    = db.Sizes.Find(item.SizeID).SizeName;

            //會員
            if (Session["IsLogin"] != null || Request.Cookies["IsLogin"] != null)
            {
                int uid      = int.Parse(Request.Cookies["upid"].Value);
                int pcid     = db.ProductColors.Where(c => c.ProductID == item.ProductID && c.ColorID == item.ColorID).First().ProductColorID;
                int psid     = db.ProductSizes.Where(c => c.ProductID == item.ProductID && c.SizeID == item.SizeID).First().ProductSizeID;
                var sameitem = db.Carts.Where(c => c.UserID == uid && c.ProductID == item.ProductID && c.ProductColorID == pcid && c.ProductSizeID == psid).ToList();
                //購物車內已有相同款式商品
                if (sameitem.Count() > 0)
                {
                    sameitem.First().Quantity += item.OrderQTY;
                    db.Entry(sameitem.First()).State = System.Data.Entity.EntityState.Modified;
                }
                //購物車內無相同款式
                else
                {
                    Cart cartitem = new Cart()
                    {
                        UserID         = uid,
                        ProductID      = item.ProductID,
                        ProductColorID = pcid,
                        ProductSizeID  = psid,
                        Quantity       = item.OrderQTY,
                        UnitPrice      = item.UnitPrice
                    };
                    db.Carts.Add(cartitem);
                }
                db.SaveChanges();
                //把db.cart內容回傳cart>
                cart = ProductMethod.Cart(uid);
                return(Json(cart, JsonRequestBehavior.AllowGet));
            }
            //非會員
            else
            {
                ////已有購物車(非購買第一件商品)
                //if (Session["cart"] != null)
                //{
                //    cart = (List<CartItem>)Session["cart"];
                //    var incart = cart.Where(c => c.ProductID == item.ProductID && c.ColorID == item.ColorID && c.SizeID == item.SizeID).ToList();
                //    //購物車內已有相同款式商品
                //    if (incart.Count() > 0)
                //    {
                //        incart.First().OrderQTY += item.OrderQTY;
                //    }
                //    //購物車內無相同款式
                //    else
                //    {
                //        cart.Add(item);
                //    }
                //    Session.Add("cart", cart);
                //}
                ////尚未產生購物車(購買第一項商品)
                //else
                //{
                //    //建立購物車
                //    cart = new List<CartItem>();
                //    //加入商品
                //    cart.Add(item);
                //    Session.Add("cart", cart);
                //}
                return(Json("notmember", JsonRequestBehavior.AllowGet));
            }
        }