Example #1
0
        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));
        }
Example #3
0
        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));
        }
Example #4
0
        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));
        }