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 static IEnumerable <ProductCell> ClassifyResult(SearchFilters searchFilters)
        {
            FancyStoreEntities db = new FancyStoreEntities();

            IQueryable <ProductColor> preproducts = db.ProductColors.AsQueryable();

            var products = ProductMethod.CreateProductCells(preproducts).OrderBy(c => c.ProductID);

            IEnumerable <ProductCell> result;

            result = products.Where(p => p.ProductName.Contains(searchFilters.Keyword));

            if (result.Count() > 0)
            {
                if (searchFilters.CategorySID != null)
                {
                    result = result.Where(p => searchFilters.CategorySID.Contains(p.CategorySID));
                }
                if (searchFilters.ColorID != null)
                {
                    result = result.Where(p => searchFilters.ColorID.Contains(p.ColorID));
                }
                if (searchFilters.SizeID != null)
                {
                    switch (searchFilters.SizeID.Count)
                    {
                    case 1:
                        result = result.Where(p => p.SizeID.Contains(searchFilters.SizeID[0]));
                        break;

                    case 2:
                        result = result.Where(p => p.SizeID.Contains(searchFilters.SizeID[0]) || p.SizeID.Contains(searchFilters.SizeID[1]));
                        break;

                    case 3:
                        result = result.Where(p => p.SizeID.Contains(searchFilters.SizeID[0]) || p.SizeID.Contains(searchFilters.SizeID[1]) || p.SizeID.Contains(searchFilters.SizeID[2]));
                        break;

                    case 4:
                        result = result.Where(p => p.SizeID.Contains(searchFilters.SizeID[0]) || p.SizeID.Contains(searchFilters.SizeID[1]) || p.SizeID.Contains(searchFilters.SizeID[2]) || p.SizeID.Contains(p.SizeID[3]));
                        break;
                    }
                }
                if (searchFilters.MaxSunitPrice != 0)
                {
                    result = result.Where(p => p.SUnitPrice >= searchFilters.MinSunitPrice && p.SUnitPrice <= searchFilters.MaxSunitPrice);
                }
                if (searchFilters.ActivityID != 0)
                {
                    var activityname = db.Activities.Where(a => a.ActivityID == searchFilters.ActivityID && a.EndDate >= DateTime.Now).FirstOrDefault().ActivityName;
                    result = result.Where(p => p.ActivityName == activityname);
                }
            }
            return(result);
        }
Esempio n. 4
0
        public ActionResult GetProduct(int id = 0, int orderid = 1, int page = 1)
        {
            var preproducts = db.ProductColors.Where(p => p.Product.ActivityProducts.Where(a => a.Activity.EndDate >= DateTime.Now).FirstOrDefault().Activity.ActivityID == id && p.Product.ActivityProducts.Where(a => a.Activity.EndDate >= DateTime.Now).FirstOrDefault().Activity.ActivityName != null);

            var products    = ProductMethod.CreateProductCells(preproducts);
            int pages       = products.Count();
            var orderresult = ProductMethod.SetCellsByOrder(products, orderid).Skip((page - 1) * 16).Take(16);


            return(Json(new { pages = pages, datas = orderresult.ToList() }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 5
0
        //塊狀商品展示
        public ActionResult GetProduct(int id = 1, int sid = 0, int orderid = 1, int page = 1)
        {
            IQueryable <ProductColor> preproducts = (sid != 0) ? db.ProductColors.Where(p => p.Product.CategorySID == sid) : db.ProductColors.Where(p => p.Product.CategorySmall.CategoryMID == id);

            var products = ProductMethod.CreateProductCells(preproducts);
            int pages    = products.Count();

            var orderresult = ProductMethod.SetCellsByOrder(products, orderid).Skip((page - 1) * 16).Take(16);

            return(Json(new { pages = pages, datas = orderresult.ToList() }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 6
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. 7
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. 8
0
        //取得商品詳細資料
        public ActionResult GetProductDetail(int id = 1, int?colorid = 0)
        {
            //瀏覽過的紀錄
            if (Session["recent"] != null)
            {
                List <int> recent = (List <int>)Session["recent"];
                if (recent.Contains(id))
                {
                }
                else
                {
                    recent.Add(id);
                }
                Session["recent"] = recent;
            }
            else
            {
                List <int> recent = new List <int>();
                recent.Add(id);
                Session.Add("recent", recent);
            }

            var           product = db.Products.Find(id);
            ProductDetail prodcutDisplay;

            ViewBag.categorymid   = product.CategorySmall.CategoryMID;
            ViewBag.categorymname = product.CategorySmall.CategoryMiddle.CategoryMName;
            ViewBag.categorysname = product.CategorySmall.CategorySName;
            prodcutDisplay        = new ProductDetail()
            {
                ProductID   = product.ProductID,
                ProductName = product.ProductName,
                Desctiption = product.Desctiption,
                CategorySID = product.CategorySID,
                UnitPrice   = product.UnitPrice,
                WashingName = db.ProductWashings.Where(w => w.ProductID == id).Select(w => w.Washing.WashingName).ToArray(),
                Colors      = db.ProductColors.Where(c => c.ProductID == id).AsEnumerable().Select(c => new Color {
                    ColorID = c.ColorID, ColorName = c.Color.ColorName, R = c.Color.R, G = c.Color.G, B = c.Color.B
                }).ToList(),
                Sizes = db.ProductSizes.Where(s => s.ProductID == id).AsEnumerable().Select(s => new Size {
                    SizeID = s.SizeID, SizeName = s.Size.SizeName
                }).ToList()
            };

            var inactivity = db.ActivityProducts.Where(a => a.ProductID == id && a.Activity.EndDate >= DateTime.Now).ToList();

            if (inactivity.Count() > 0)
            {
                ViewBag.activityname      = inactivity.FirstOrDefault().Activity.ActivityName;
                prodcutDisplay.SUnitPrice = Convert.ToInt32(Math.Floor(inactivity.First().Activity.DiscountMethod.Discount *product.UnitPrice));
            }

            ViewBag.colorid = (colorid == 0) ? db.ProductColors.Where(c => c.ProductID == id).Select(c => c.ColorID).First() : colorid;

            var           images = db.ProductPhotoes.Where(p => p.ProductID == id).Take(10);
            List <string> imgs   = new List <string>();

            foreach (var image in images)
            {
                var img = Convert.ToBase64String(image.Photo.Photo1);
                imgs.Add(img);
            }
            ViewBag.images = imgs;

            if (Session["IsLogin"] != null || Request.Cookies["IsLogin"] != null)
            {
                int uid = int.Parse(Request.Cookies["upid"].Value);
                var fav = db.MyFavorites.Where(f => f.UserID == uid && f.ProductID == id).ToList();

                ViewBag.fav = (fav.Count > 0) ? 1 : 0;
            }
            else
            {
                ViewBag.fav = 0;
            }

            var products = db.Products.Where(p => p.ProductID != id && p.CategorySID == prodcutDisplay.CategorySID).OrderBy(x => Guid.NewGuid()).Take(10).ToList();

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

            foreach (var pd in products)
            {
                decimal discountpercent = (db.ActivityProducts.Where(a => a.ProductID == pd.ProductID && a.Activity.EndDate >= DateTime.Now).Count() > 0) ? db.ActivityProducts.Where(a => a.ProductID == pd.ProductID && a.Activity.EndDate >= DateTime.Now).FirstOrDefault().Activity.DiscountMethod.Discount : 0;

                string activityname = (db.ActivityProducts.Where(a => a.ProductID == pd.ProductID && a.Activity.EndDate >= DateTime.Now).Count() > 0) ? db.ActivityProducts.Where(a => a.ProductID == pd.ProductID && a.Activity.EndDate >= DateTime.Now).FirstOrDefault().Activity.ActivityName : null;

                citem = new CartItem()
                {
                    ProductID    = pd.ProductID,
                    ProductName  = pd.ProductName,
                    UnitPrice    = pd.UnitPrice,
                    SUnitPrice   = Convert.ToInt32(Math.Floor(discountpercent * pd.UnitPrice)),
                    ActivityName = activityname
                };
                citems.Add(citem);
            }

            ViewBag.recommend = citems.ToList();

            var evaluation = ProductMethod.LoadEvaluation(id);

            if (evaluation.Count > 0)
            {
                int score = evaluation.Sum(e => e.Grade) / evaluation.Count;
                ViewBag.score = score;
            }
            ViewBag.evaluation = evaluation.ToList();

            return(View(prodcutDisplay));
        }
Esempio n. 9
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));
            }
        }