public ActionResult AddToCart(CartVM viewModel) { // If we are a guest on the site use cookies for the shopping cart if (!UserService.IsUserConnected(System.Web.HttpContext.Current.User)) { // TODO: Check if product is not null (it exists) HttpContext.Response.SetCookie(CookieService.AddProductToCart(Request.Cookies, viewModel.ProductId, viewModel.Size, viewModel.Quantity)); return(RedirectToAction("Index", "ShoppingCart")); } // If we are a user on the site use he database for the shopping cart Product product = new ProductManager().GetProductById(viewModel.ProductId); if (!new ShoppingCartManager().AddProductToCart(User.Identity.GetUserId(), product, viewModel.Size, viewModel.Quantity)) { ModelState.AddModelError("", "An error has occured."); } if (!ModelState.IsValid) { return(View()); } return(RedirectToAction("Index", "ShoppingCart")); }