public ViewResult Index(EDC.Cart cart, string returnUrl)
 {
     return View(new CartIndexViewModel
     {
         Cart = cart,
         ReturnUrl = returnUrl
     });
 }
 public ActionResult AddToCart(EDC.Cart cart, int productId, int quantity)
 {
     Product product = repository.Products.FirstOrDefault(p => p.product_id == productId);
     if (product != null)
     {
         cart.AddItem(product, quantity);
         var result = new CartResponseViewModel()
         {
             Message = Server.HtmlEncode(string.Format(Constants.ADD_ITEM_TO_CART_MSG, product.product_name)),
             CartTotal = cart.ComputeTotalValue().ToString("c"),
             ItemCount = cart.Lines.Sum(c => c.Quantity)
         };
         return Json(result);
     }
     else
         return Json(new CartResponseViewModel()
         {
             Message = Constants.PRODUCT_CURRENTLY_UNAVAILABLE,
             CartTotal = cart.ComputeTotalValue().ToString("c"),
             ItemCount = cart.Lines.Sum(c => c.Quantity)
         });
 }
 public ActionResult RemoveFromCart(EDC.Cart cart, int productId)
 {
     Product product = repository.Products.FirstOrDefault(p => p.product_id == productId);
     if (product != null)
     {
         if (cart.Lines.Select(x => x.Product.product_id == productId).Count() > 0)
         {
             cart.RemoveLine(product);
             return Json(new CartResponseViewModel()
             {
                 Message = string.Format(Constants.REMOVE_ITEM_FROM_CART_MSG, product.product_name),
                 CartTotal = cart.ComputeTotalValue().ToString("c"),
                 ItemCount = cart.Lines.Sum(c => c.Quantity)
             });
         }
     }
     return Json(new CartResponseViewModel()
     {
         Message = string.Format(Constants.NO_PRODUCT_TO_REMOVE_MSG, product.product_name),
         CartTotal = cart.ComputeTotalValue().ToString("c"),
         ItemCount = cart.Lines.Sum(c => c.Quantity)
     });
 }
 public PartialViewResult CheckOutDetails(EDC.Cart cart)
 {
     return PartialView();
 }
 public PartialViewResult CartDetails(EDC.Cart cart)
 {
     return PartialView(cart);
 }
 public PartialViewResult Summary(EDC.Cart cart)
 {
     return PartialView(cart);
 }