public RedirectToRouteResult AddToCart(Cart cart, int ID, string returnUrl)
        {
            TypeServices game = repository.Services
                .FirstOrDefault(g => g.ID == ID);

            if (game != null)
            {
                cart.AddItem(game, 1);
            }
            return RedirectToAction("Index", new { returnUrl });
        }
        public object BindModel(ControllerContext controllerContext,
            ModelBindingContext bindingContext)
        {
            // Получить объект Cart из сеанса
            Cart cart = null;
            if (controllerContext.HttpContext.Session != null)
            {
                cart = (Cart)controllerContext.HttpContext.Session[sessionKey];
            }

            // Создать объект Cart если он не обнаружен в сеансе
            if (cart == null)
            {
                cart = new Cart();
                if (controllerContext.HttpContext.Session != null)
                {
                    controllerContext.HttpContext.Session[sessionKey] = cart;
                }
            }

            // Возвратить объект Cart
            return cart;
        }
        public ActionResult Checkout(Cart cart, ShippingView shippingDetails)
        {
            if (cart.Lines.Count() == 0)
            {
                ModelState.AddModelError("", "Извините, ваша корзина пуста!");
            }

            if (ModelState.IsValid)
            {
                foreach (var line in cart.Lines)
                {
                    ShippingDetails sd = new ShippingDetails();

                    var subtotal = line.Order.Price * line.Quantity;

                    sd.OrderID = line.Order.ID;
                    sd.Line1 = shippingDetails.Line1;
                    sd.Line2 = shippingDetails.Line2;
                    sd.Name = shippingDetails.Name;
                    sd.City = shippingDetails.City;
                    sd.Country = shippingDetails.Country;
                    sd.Count = line.Quantity;

                    repository.CreateDetails(sd);

                }

                cart.Clear();

                return RedirectToAction("Index", "Home");
            }
            else
            {
                return View(shippingDetails);
            }
        }
        public RedirectToRouteResult RemoveFromCart(Cart cart, int ID, string returnUrl)
        {
            TypeServices game = repository.Services
                .FirstOrDefault(g => g.ID == ID);

            if (game != null)
            {
                cart.RemoveLine(game);
            }
            return RedirectToAction("Index", new { returnUrl });
        }
 public ViewResult Index(Cart cart, string returnUrl)
 {
     return View(new CartIndexViewModel
     {
         Cart = cart,
         ReturnUrl = returnUrl
     });
 }
 public PartialViewResult Summary(Cart cart)
 {
     return PartialView(cart);
 }