public ActionResult Index(CheckoutPage currentPage) { if (CartIsNullOrEmpty()) { return(View("EmptyCart")); } var viewModel = CreateCheckoutViewModel(currentPage); Cart.Currency = _currencyService.GetCurrentCurrency(); if (User.Identity.IsAuthenticated) { _checkoutService.UpdateShippingAddresses(Cart, viewModel); } _checkoutService.UpdateShippingMethods(Cart, viewModel.Shipments); _checkoutService.ApplyDiscounts(Cart); _orderRepository.Save(Cart); _recommendationService.SendCheckoutTrackingData(HttpContext); _checkoutService.ProcessPaymentCancel(viewModel, TempData, ControllerContext); return(View(viewModel.ViewName, viewModel)); }
public ActionResult Update(CheckoutPage currentPage, UpdateShippingMethodViewModel shipmentViewModel, IPaymentMethod paymentOption) { ModelState.Clear(); _checkoutService.UpdateShippingMethods(CartWithValidationIssues.Cart, shipmentViewModel.Shipments); _checkoutService.ApplyDiscounts(CartWithValidationIssues.Cart); _orderRepository.Save(CartWithValidationIssues.Cart); var viewModel = CreateCheckoutViewModel(currentPage, paymentOption); return(PartialView("Partial", viewModel)); }
public async Task <ActionResult> Index(CheckoutPage currentPage) { if (CartIsNullOrEmpty()) { return(View("EmptyCart")); } IPaymentMethodViewModel <PaymentMethodBase> paymentMethod = null; var selectedPaymentMethod = Request["paymentMethod"]; if (!string.IsNullOrEmpty(selectedPaymentMethod)) { paymentMethod = PaymentMethodViewModelResolver.Resolve(selectedPaymentMethod); paymentMethod.SystemName = selectedPaymentMethod; } var viewModel = CreateCheckoutViewModel(currentPage, paymentMethod); Cart.Currency = _currencyService.GetCurrentCurrency(); if (User.Identity.IsAuthenticated) { _checkoutService.UpdateShippingAddresses(Cart, viewModel); } _checkoutService.UpdateShippingMethods(Cart, viewModel.Shipments); _checkoutService.ApplyDiscounts(Cart); _orderRepository.Save(Cart); if (viewModel.Payment.SystemName.Equals(Klarna.Payments.Constants.KlarnaPaymentSystemKeyword)) { await _klarnaPaymentsService.CreateOrUpdateSession(Cart); (viewModel.Payment as KlarnaPaymentsViewModel)?.InitializeValues(); } if (viewModel.Payment.SystemName.Equals(Klarna.Checkout.Constants.KlarnaCheckoutSystemKeyword)) { _klarnaCheckoutService.CreateOrUpdateOrder(Cart); (viewModel.Payment as KlarnaCheckoutViewModel)?.InitializeValues(); } return(View(viewModel.ViewName, viewModel)); }
public ActionResult Index(CheckoutPage currentPage) { if (CartIsNullOrEmpty()) { return(View("EmptyCart")); } var viewModel = CreateCheckoutViewModel(currentPage); Cart.Currency = _currencyService.GetCurrentCurrency(); if (User.Identity.IsAuthenticated) { _checkoutService.UpdateShippingAddresses(Cart, viewModel); } _checkoutService.UpdateShippingMethods(Cart, viewModel.Shipments); _checkoutService.ApplyDiscounts(Cart); _orderRepository.Save(Cart); return(View(viewModel.ViewName, viewModel)); }