public PartialViewResult CartEditor(int productID, int count)
        {
            var cart = new ShopCart().LoadFromDB();
            var cnt  = cart.ShopCartItems.FirstOrDefault(x => x.ProductID == productID);

            if (cnt != null)
            {
                cart.AddItem(productID, count - cnt.Count);
            }
            else
            {
                cart.AddItem(productID, count);
            }
            return(PartialView(new ShopCart().LoadFromDB()));
        }
        public ContentResult toCartImmediate(int id)
        {
            DB  db       = new DB();
            var cart     = new ShopCart().InitCart();
            var forDelay = cart.ActiveProducts.Where(x => x.StoreProduct.ID != id);

            foreach (var dbItem in forDelay.Select(item => db.ShopCartItems.First(x => x.ID == item.ID)))
            {
                dbItem.IsDelayed = true;
            }
            var buyBooks = cart.ShopCartItems.Where(x => x.StoreProduct.ID == id);

            foreach (var dbItem in buyBooks.Select(item => db.ShopCartItems.First(x => x.ID == item.ID)))
            {
                dbItem.Count     = 1;
                dbItem.IsDelayed = false;
            }
            db.SubmitChanges();
            cart.Reset();
            if (cart.ActiveProducts.All(x => x.StoreProduct.ID != id))
            {
                cart.AddItem(id, 1);
            }
            return(new ContentResult()
            {
                Content = string.Format("/order?step={0}&fastorder=true", cart.MaxAvailableStep)
            });
        }
        public PartialViewResult toCart(int id, int?count, bool spec = false)
        {
            var cart = new ShopCart().InitCart();

            cart.AddItem(id, count ?? 1, spec);
            return(PartialView("CartBlock", cart));
        }
        public PartialViewResult toCartAll(string ids)
        {
            var pairs = ids.Split <int>(";").ToList();
            var cart  = new ShopCart().InitCart();

            for (int i = 0; i < pairs.Count(); i += 2)
            {
                cart.AddItem(pairs[i], pairs[i + 1]);
            }
            return(PartialView("CartBlock", cart));
        }
        public PartialViewResult PopupDialog(int id, int count, bool needchange, bool?ischange)
        {
            var db = new DB();

            if (needchange)
            {
                var cart = new ShopCart().InitCart();
                if ((count == 1 || count == -1) && ischange.HasValue && !ischange.Value && !(cart.ShopCartItems.First(x => x.ProductID == id).Count == 1 && count == -1))
                {
                    cart.AddItem(id, count);
                }
                else if (ischange.HasValue && ischange.Value)
                {
                    cart.SetItem(id, count);
                }
            }
            return(PartialView(db.StoreProducts.FirstOrDefault(x => x.ID == id)));
        }