예제 #1
0
        public ActionResult OrderSummary()
        {
            var viewModel = _orderSummaryViewModelFactory.CreateOrderSummaryViewModel(Cart);

            var success = _klarnaPaymentsService.CreateOrUpdateSession(Cart, new SessionSettings(SiteDefinition.Current.SiteUrl)).Result;

            return(PartialView(viewModel));
        }
예제 #2
0
        public ActionResult OrderSummary()
        {
            var viewModel = _orderSummaryViewModelFactory.CreateOrderSummaryViewModel(Cart);

            return(PartialView(viewModel));
        }
예제 #3
0
        public ActionResult Index(CheckoutPage currentPage, int?isGuest)
        {
            if (CartIsNullOrEmpty())
            {
                return(View("EmptyCart", new CheckoutMethodViewModel(currentPage)));
            }

            if (!Request.IsAuthenticated && (!isGuest.HasValue || isGuest.Value != 1))
            {
                return(RedirectToAction("CheckoutMethod", new { node = currentPage.ContentLink }));
            }

            if (CartWithValidationIssues.Cart.GetFirstShipment().ShippingMethodId == Guid.Empty)
            {
                _checkoutService.UpdateShippingMethods(CartWithValidationIssues.Cart, _shipmentViewModelFactory.CreateShipmentsViewModel(CartWithValidationIssues.Cart).ToList());
                _orderRepository.Save(CartWithValidationIssues.Cart);
            }

            var viewModel = CreateCheckoutViewModel(currentPage);

            viewModel.OrderSummary   = _orderSummaryViewModelFactory.CreateOrderSummaryViewModel(CartWithValidationIssues.Cart);
            viewModel.BillingAddress = _addressBookService.ConvertToModel(CartWithValidationIssues.Cart.GetFirstForm()?.Payments.FirstOrDefault()?.BillingAddress);
            _addressBookService.LoadAddress(viewModel.BillingAddress);

            if (viewModel.Shipments.Count == 1)
            {
                viewModel.BillingAddressType = 2;
            }
            else if (Request.IsAuthenticated)
            {
                viewModel.BillingAddressType = 1;
            }
            else
            {
                viewModel.BillingAddressType = 0;
            }

            var shippingAddressType = Request.IsAuthenticated ? 1 : 0;

            for (var i = 0; i < viewModel.Shipments.Count; i++)
            {
                if (string.IsNullOrEmpty(viewModel.Shipments[i].Address.AddressId))
                {
                    viewModel.Shipments[i].ShippingAddressType = shippingAddressType;
                }
                else
                {
                    viewModel.Shipments[i].ShippingAddressType = 1;
                }
            }

            if (TempData[Constant.ErrorMessages] != null)
            {
                ViewBag.ErrorMessages = (string)TempData[Constant.ErrorMessages];
            }

            return(View("Checkout", viewModel));
        }
예제 #4
0
        //[OutputCache(Duration = 0, NoStore = true)]
        public IActionResult Index(CheckoutPage currentPage, int?isGuest)
        {
            if (CartIsNullOrEmpty())
            {
                return(View("EmptyCart", new CheckoutMethodViewModel(currentPage)));
            }

            if (!HttpContext.User.Identity.IsAuthenticated && (!isGuest.HasValue || isGuest.Value != 1))
            {
                return(RedirectToAction("CheckoutMethod", new { node = currentPage.ContentLink }));
            }

            if (CartWithValidationIssues.Cart.GetFirstShipment().ShippingMethodId == Guid.Empty)
            {
                _checkoutService.UpdateShippingMethods(CartWithValidationIssues.Cart, _shipmentViewModelFactory.CreateShipmentsViewModel(CartWithValidationIssues.Cart).ToList());
                _orderRepository.Save(CartWithValidationIssues.Cart);
            }

            var viewModel = CreateCheckoutViewModel(currentPage);

            viewModel.OrderSummary   = _orderSummaryViewModelFactory.CreateOrderSummaryViewModel(CartWithValidationIssues.Cart);
            viewModel.BillingAddress = _addressBookService.ConvertToModel(CartWithValidationIssues.Cart.GetFirstForm()?.Payments.FirstOrDefault()?.BillingAddress);
            _addressBookService.LoadAddress(viewModel.BillingAddress);

            var shipmentBillingTypes = TempData["ShipmentBillingTypes"] as List <KeyValuePair <string, int> >;

            if (shipmentBillingTypes != null && shipmentBillingTypes.Any(x => x.Key == "Billing"))
            {
                viewModel.BillingAddressType = 0;
            }
            else
            {
                if (viewModel.Shipments.Count == 1)
                {
                    viewModel.BillingAddressType = 2;
                }
                else if (HttpContext.User.Identity.IsAuthenticated)
                {
                    viewModel.BillingAddressType = 1;
                }
                else
                {
                    viewModel.BillingAddressType = 0;
                }
            }

            var shippingAddressType = HttpContext.User.Identity.IsAuthenticated ? 1 : 0;

            for (var i = 0; i < viewModel.Shipments.Count; i++)
            {
                if (shipmentBillingTypes != null && shipmentBillingTypes.Where(x => x.Key == "Shipment").Any(x => x.Value == i))
                {
                    viewModel.Shipments[i].ShippingAddressType = 0;
                }
                else
                {
                    if (string.IsNullOrEmpty(viewModel.Shipments[i].Address.AddressId))
                    {
                        viewModel.Shipments[i].ShippingAddressType = shippingAddressType;
                    }
                    else
                    {
                        viewModel.Shipments[i].ShippingAddressType = 1;
                    }
                }
            }

            if (TempData[Constant.ErrorMessages] != null)
            {
                ViewBag.ErrorMessages = (string)TempData[Constant.ErrorMessages];
            }

            var tempDataState = TempData["ModelState"] as List <KeyValuePair <string, string> >;

            if (tempDataState != null)
            {
                foreach (var e in tempDataState)
                {
                    ViewData.ModelState.AddModelError(e.Key, e.Value);
                }
            }

            return(View("Checkout", viewModel));
        }
예제 #5
0
        public ActionResult BillingInformation(CheckoutPage currentPage, int?addressType)
        {
            var viewModel = CreateCheckoutViewModel(currentPage);

            viewModel.OrderSummary   = _orderSummaryViewModelFactory.CreateOrderSummaryViewModel(CartWithValidationIssues.Cart);
            viewModel.BillingAddress = _addressBookService.ConvertToModel(CartWithValidationIssues.Cart.GetFirstForm()?.Payments.FirstOrDefault()?.BillingAddress);
            _addressBookService.LoadAddress(viewModel.BillingAddress);
            if (addressType == null && Request.IsAuthenticated)
            {
                viewModel.AddressType = 1;
            }
            else if (addressType == null)
            {
                viewModel.AddressType = 0;
            }
            else
            {
                viewModel.AddressType = addressType.Value;
            }
            return(View("BillingInformation", viewModel));
        }