public ActionResult Index(int id) { var cart = _databaseConnection.Get(id); var checkout = _apiCaller.GetCheckout(cart.CheckoutId); var viewModel = new CheckoutViewModel() { ShoppingCart = cart, CheckoutSnippet = checkout.Snippet, ColorScheme = checkout.Gui.ColorScheme }; return(View(viewModel)); }
public void Index(int id) { var cart = _databaseConnection.Get(id); var checkout = _apiCaller.GetCheckout(cart.CheckoutId); switch (checkout.Status) { case CheckoutStatus.Created: case CheckoutStatus.ReadyToPay: case CheckoutStatus.ProcessingPayment: cart.Status = CartStatus.Created; break; case CheckoutStatus.ReadyToShip: cart.Status = CartStatus.Paid; break; case CheckoutStatus.Shipped: case CheckoutStatus.PaidToAccount: cart.Status = CartStatus.Shipped; break; case CheckoutStatus.Canceled: case CheckoutStatus.Expired: cart.Status = CartStatus.Shipped; break; } _databaseConnection.Save(cart); }
public ActionResult Index(int id) { var cart = _databaseConnection.Get(id); var checkoutId = cart.CheckoutId; var paysonCheckout = _apiCaller.GetCheckout(checkoutId); var model = new ConfirmationViewModel { ShoppingCart = cart, ConfirmationSnippet = paysonCheckout.Snippet }; return(View(model)); }
public ActionResult GoToCheckout(ShopViewModel model) { try { var apiCaller = new ApiCaller(model.MerchantId, model.ApiKey, true); apiCaller.SetApiUrl(ConfigurationManager.AppSettings["PaysonRestUrl"]); //Send the newly checkout data to Payson var location = apiCaller.NewCheckout(model); //Get a new checkout data object which is populated with aditional information var checkout = apiCaller.GetCheckout(location); //Update the cart with items and checkout reference. var cart = UpdateShoppingCart(model.ShoppingCart, checkout); return(RedirectToAction("Index", "Checkout", new RouteValueDictionary() { { "id", cart.Id } })); } catch (WebException e) { var response = (HttpWebResponse)e.Response; string responseBody; using (var responseStream = response.GetResponseStream()) { if (responseStream == null) { throw new NullReferenceException("No response stream found."); } using (var reader = new StreamReader(responseStream)) { responseBody = reader.ReadToEnd(); } } return(View("Response", null, responseBody)); } }