Ejemplo n.º 1
0
        public ActionResult Index()
        {
            ViewBag.TopHotALL = _productService.ListTopHotALL();

            ViewBag.productCategory = _productCategoryService.ListAll();

            var list = new List <CartItem>();

            try
            {
                HttpCookie Cookie = HttpContext.Request.Cookies[ListCart.CartCookie];                   // lấy cookie

                if (Cookie != null)                                                                     // check cookies có value nếu cookie not null
                {
                    string ValueCookie = Server.UrlDecode(Cookie.Value);                                //Decode dịch ngược mã  các ký tự đặc biệt tham khảo
                    var    cart        = JsonConvert.DeserializeObject <List <CartItem> >(ValueCookie); // convert json to  list object
                    if (cart != null)
                    {
                        list = (List <CartItem>)cart;
                    }

                    int kk = 0;
                    while (1 != 2)
                    {
                        kk++;
                        HttpCookie cooki = HttpContext.Request.Cookies[kk.ToString()];// lấy cookie
                        if (cooki != null)
                        {
                            string valueCookie = Server.UrlDecode(cooki.Value);                                 //Decode dịch ngược mã  các ký tự đặc biệt tham khảo
                            var    cart2       = JsonConvert.DeserializeObject <List <CartItem> >(valueCookie); // convert json to  list object
                            if (cart2 != null)
                            {
                                var list2 = (List <CartItem>)cart2;

                                list.AddRange(list2);
                            }
                        }
                        else
                        {
                            break;
                        }
                    }
                }
            }
            catch { }



            ////////
            //
            if (User.Identity.IsAuthenticated && list.Count != 0)
            {
                foreach (var lst in list)
                {
                    var orderDetailTemp = _orderDetailTempService.ListAllByUserID(User.Identity.GetUserId());
                    var product         = _productService.GetById(lst.Product.Id);
                    if (orderDetailTemp == null)
                    {
                        OrderDetailTemp temp = new OrderDetailTemp();
                        temp.Id     = Guid.NewGuid();
                        temp.UserID = User.Identity.GetUserId();
                        _orderDetailTempService.Create(temp);
                        orderDetailTemp = _orderDetailTempService.ListAllByUserID(User.Identity.GetUserId());
                    }
                    if (orderDetailTemp.CartContent == null)
                    {
                        var item = new CartItem();
                        item.Product = product;
                        item.Quatity = lst.Quatity;
                        var list2 = new List <CartItem>();
                        list2.Add(item);

                        string jsonItem = JsonConvert.SerializeObject(list2, Formatting.Indented);

                        var value = Server.UrlEncode(jsonItem); //Encode dịch  mã  các ký tự đặc biệt, từ string
                        orderDetailTemp.CartContent = value;    // cookie mới đè lên cookie cũ
                    }
                    else
                    {
                        string value = Server.UrlDecode(orderDetailTemp.CartContent);           //Decode dịch ngược mã  các ký tự đặc biệt tham khảo
                        var    cart  = JsonConvert.DeserializeObject <List <CartItem> >(value); // convert json to  list object
                        var    list2 = (List <CartItem>)cart;
                        if (list2.Exists(x => x.Product.Id == product.Id))
                        {
                            foreach (var item in list2)
                            {
                                if (item.Product.Id == product.Id)
                                {
                                    item.Quatity += lst.Quatity;
                                }
                            }
                        }
                        else
                        {
                            var item = new CartItem();
                            item.Product = product;
                            item.Quatity = lst.Quatity;

                            list2.Add(item);
                        }

                        string          jsonItem = JsonConvert.SerializeObject(list2, Formatting.Indented);
                        OrderDetailTemp temp     = new OrderDetailTemp();
                        temp.Id          = _orderDetailTempService.ListAllByUserID(User.Identity.GetUserId()).Id;
                        temp.UserID      = User.Identity.GetUserId();
                        temp.CartContent = jsonItem;
                        _orderDetailTempService.Update(temp);
                    }
                }

                /////Xóa cooki
                ///
                int i = -1;
                while (1 != 2)
                {
                    i++;
                    HttpCookie cooki = HttpContext.Request.Cookies[i.ToString()];// lấy cookie
                    if (cooki == null)
                    {
                        break;
                    }
                    //cooki.Expires = DateTime.Now.AddDays(-100);
                    //HttpContext.Response.Cookies.Add(cooki);
                    HttpContext.Response.Cookies[i.ToString()].Expires = DateTime.Now.AddDays(-1);
                }
            }


            return(View());
        }
Ejemplo n.º 2
0
        public ActionResult AddItem(Guid id, int quantity)
        {
            if (User.Identity.IsAuthenticated == false)
            {
                var product = _productService.GetById(id);
                int k       = -1;
                var list3   = new List <CartItem>();
                while (1 != 2)
                {
                    k++;
                    HttpCookie cooki = HttpContext.Request.Cookies[k.ToString()];// lấy cookie// convert json to  list object
                    if (cooki != null)
                    {
                        string ValueCookie = Server.UrlDecode(cooki.Value);//Decode dịch ngược mã  các ký tự đặc biệt
                        var    cart        = JsonConvert.DeserializeObject <List <CartItem> >(ValueCookie);
                        var    list        = (List <CartItem>)cart.ToList();

                        if (list.Exists(x => x.Product.Id == id))
                        {
                            foreach (var item in list)
                            {
                                if (item.Product.Id == product.Id)
                                {
                                    item.Quatity += quantity;
                                }
                                list3.Add(item);
                            }
                            string jsonitem = JsonConvert.SerializeObject(list3, Formatting.Indented);
                            //HttpCookie cookie = new HttpCookie(ListCart.CartCookie);// create
                            cooki.Value = Server.UrlEncode(jsonitem);
                            string b = cooki.Value;
                            HttpContext.Response.Cookies[k.ToString()].Value   = b;
                            HttpContext.Response.Cookies[k.ToString()].Expires = DateTime.Now.AddHours(15);
                            return(RedirectToAction("Index"));

                            //int f = 0;
                            //while (1 != 2)
                            //{
                            //    f++;
                            //    HttpCookie cookie = HttpContext.Request.Cookies[f.ToString()];
                            //    if (cookie == null)
                            //    {
                            //        HttpCookie Cooki2 = new HttpCookie(f.ToString());// create
                            //        Cooki2.Expires = DateTime.Now.AddHours(15);

                            //        Cooki2.Value = Server.UrlEncode(jsonitem);//Encode dịch  mã  các ký tự đặc biệt, từ string
                            //        HttpContext.Response.Cookies.Add(Cooki2);// cookie mới đè lên cookie cũ
                            //        break;
                            //    }


                            //}
                            //return RedirectToAction("Index");
                        }
                    }
                    else
                    {
                        break;
                    }
                }

                HttpCookie Cookie = HttpContext.Request.Cookies[ListCart.CartCookie];// lấy cookie



                if (Cookie != null)
                {
                    string ValueCookie = Server.UrlDecode(Cookie.Value);                                //Decode dịch ngược mã  các ký tự đặc biệt
                    var    cart        = JsonConvert.DeserializeObject <List <CartItem> >(ValueCookie); // convert json to  list object
                    if (cart != null)
                    {
                        var list  = (List <CartItem>)cart;
                        var list2 = new List <CartItem>();
                        if (list.Exists(x => x.Product == product))
                        {
                            foreach (var item in list)
                            {
                                if (item.Product == product)
                                {
                                    item.Quatity += quantity;
                                }
                            }
                        }
                        else
                        {
                            var item = new CartItem();
                            item.Product = product;
                            item.Quatity = quantity;

                            list2.Add(item);
                        }

                        string jsonItem = JsonConvert.SerializeObject(list2, Formatting.Indented);
                        //HttpCookie cookie = new HttpCookie(ListCart.CartCookie);// create

                        int i = 0;
                        while (1 != 2)
                        {
                            i++;
                            HttpCookie cooki = HttpContext.Request.Cookies[i.ToString()];
                            if (cooki == null)
                            {
                                HttpCookie Cooki2 = new HttpCookie(i.ToString());// create
                                Cooki2.Expires = DateTime.Now.AddHours(15);

                                Cooki2.Value = Server.UrlEncode(jsonItem); //Encode dịch  mã  các ký tự đặc biệt, từ string
                                HttpContext.Response.Cookies.Add(Cooki2);  // cookie mới đè lên cookie cũ
                                break;
                            }
                        }


                        //cookie.Expires.AddDays(1);
                        //cookie.Value = Server.UrlEncode(jsonItem);//Encode dịch  mã  các ký tự đặc biệt, từ string
                        //HttpContext.Response.Cookies.Add(cookie);// cookie mới đè lên cookie cũ
                    }
                }
                else
                {
                    //Tạo mới CartItem
                    var item = new CartItem();
                    item.Product = product;
                    item.Quatity = quantity;
                    var list = new List <CartItem>();
                    list.Add(item);

                    string     jsonItem = JsonConvert.SerializeObject(list, Formatting.Indented);
                    HttpCookie cookie   = new HttpCookie(ListCart.CartCookie);// create
                    cookie.Expires = DateTime.Now.AddHours(15);

                    cookie.Value = Server.UrlEncode(jsonItem); //Encode dịch  mã  các ký tự đặc biệt, từ string
                    HttpContext.Response.Cookies.Add(cookie);  // cookie mới đè lên cookie cũ
                }
            }
            else
            {
                var orderDetailTemp = _orderDetailTempService.ListAllByUserID(User.Identity.GetUserId());
                var product         = _productService.GetById(id);
                if (orderDetailTemp == null)
                {
                    OrderDetailTemp temp = new OrderDetailTemp();
                    temp.Id     = Guid.NewGuid();
                    temp.UserID = User.Identity.GetUserId();
                    _orderDetailTempService.Create(temp);
                    orderDetailTemp = _orderDetailTempService.ListAllByUserID(User.Identity.GetUserId());
                }
                if (orderDetailTemp.CartContent == null)
                {
                    var item = new CartItem();
                    item.Product = product;
                    item.Quatity = quantity;
                    var list = new List <CartItem>();
                    list.Add(item);

                    string jsonItem = JsonConvert.SerializeObject(list, Formatting.Indented);

                    var value = Server.UrlEncode(jsonItem); //Encode dịch  mã  các ký tự đặc biệt, từ string
                    orderDetailTemp.CartContent = value;    // cookie mới đè lên cookie cũ
                }
                else
                {
                    string value = Server.UrlDecode(orderDetailTemp.CartContent);           //Decode dịch ngược mã  các ký tự đặc biệt tham khảo
                    var    cart  = JsonConvert.DeserializeObject <List <CartItem> >(value); // convert json to  list object
                    var    list  = (List <CartItem>)cart;
                    if (list.Exists(x => x.Product.Id == product.Id))
                    {
                        foreach (var item in list)
                        {
                            if (item.Product.Id == product.Id)
                            {
                                item.Quatity += quantity;
                            }
                        }
                    }
                    else
                    {
                        var item = new CartItem();
                        item.Product = product;
                        item.Quatity = quantity;

                        list.Add(item);
                    }

                    string          jsonItem = JsonConvert.SerializeObject(list, Formatting.Indented);
                    OrderDetailTemp temp     = new OrderDetailTemp();
                    temp.Id          = _orderDetailTempService.ListAllByUserID(User.Identity.GetUserId()).Id;
                    temp.UserID      = User.Identity.GetUserId();
                    temp.CartContent = jsonItem;
                    _orderDetailTempService.Update(temp);
                }

                //string Value = Server.UrlDecode(orderDetailTemp.CartContent);//Decode dịch ngược mã  các ký tự đặc biệt tham khảo
                //var cart = JsonConvert.DeserializeObject<List<CartItem>>(Value);// convert json to  list object
                //list = (List<CartItem>)cart;
            }


            return(RedirectToAction("Index"));
        }