public async Task <ActionResult> Index(OrderConfirmationPage currentPage, string notificationMessage, int?orderNumber) { IPurchaseOrder order = null; if (PageEditing.PageIsInEditMode) { order = ConfirmationService.CreateFakePurchaseOrder(); } else if (orderNumber.HasValue) { order = ConfirmationService.GetOrder(orderNumber.Value); if (order != null) { await _recommendationService.TrackOrderAsync(HttpContext, order); } } if (order != null && order.CustomerId == CustomerContext.CurrentContactId) { var viewModel = CreateViewModel(currentPage, order); viewModel.NotificationMessage = notificationMessage; return(View(viewModel)); } return(Redirect(Url.ContentUrl(ContentReference.StartPage))); }
public async Task <ActionResult> Index(OrderConfirmationPage currentPage, string notificationMessage, string orderNumber, string trackingNumber) { int orderId; trackingNumber = string.IsNullOrEmpty(trackingNumber) ? orderNumber : trackingNumber; IPurchaseOrder order = null; if (PageEditing.PageIsInEditMode) { order = ConfirmationService.CreateFakePurchaseOrder(); } else if (int.TryParse(orderNumber, out orderId)) { order = ConfirmationService.GetOrder(orderId); if (order != null) { await _recommendationService.TrackOrderAsync(HttpContext, order); } } else if (!string.IsNullOrEmpty(trackingNumber)) { order = ConfirmationService.GetByTrackingNumber(trackingNumber); if (order != null) { await _recommendationService.TrackOrderAsync(HttpContext, order); } } if (order != null && order.CustomerId == CustomerContext.CurrentContactId) { var viewModel = CreateViewModel(currentPage, order); viewModel.NotificationMessage = notificationMessage; var paymentMethod = PaymentManager .GetPaymentMethodBySystemName(Constants.KlarnaCheckoutSystemKeyword, ContentLanguage.PreferredCulture.Name) .PaymentMethod.FirstOrDefault(); if (paymentMethod != null && order.GetFirstForm().Payments.Any(x => x.PaymentMethodId == paymentMethod.PaymentMethodId && !string.IsNullOrEmpty(order.Properties[Klarna.Common.Constants.KlarnaOrderIdField]?.ToString()))) { var market = _marketService.GetMarket(order.MarketId); var klarnaOrder = await _klarnaCheckoutService.GetOrder( order.Properties[Klarna.Common.Constants.KlarnaOrderIdField].ToString(), market).ConfigureAwait(false); viewModel.KlarnaCheckoutHtmlSnippet = klarnaOrder.HtmlSnippet; viewModel.IsKlarnaCheckout = true; } return(View(viewModel)); } return(Redirect(Url.ContentUrl(ContentReference.StartPage))); }
public async Task <ActionResult> Index(OrderConfirmationPage currentPage, string notificationMessage, int?orderNumber, string payeeReference) { IPurchaseOrder order = null; if (PageEditing.PageIsInEditMode) { order = ConfirmationService.CreateFakePurchaseOrder(); } else if (orderNumber.HasValue) { order = ConfirmationService.GetOrder(orderNumber.Value); if (order != null) { await _recommendationService.TrackOrderAsync(HttpContext, order); } } if (order == null && orderNumber.HasValue) { var cart = _orderRepository.Load <ICart>(orderNumber.Value); if (cart != null) { var swedbankPayOrderId = cart.Properties[Constants.SwedbankPayOrderIdField]; order = _checkoutService.GetOrCreatePurchaseOrder(orderNumber.Value, swedbankPayOrderId.ToString()); } else { order = _swedbankPayCheckoutService.GetByPayeeReference(payeeReference); } } if (order != null && order.CustomerId == CustomerContext.CurrentContactId) { var viewModel = CreateViewModel(currentPage, order); viewModel.NotificationMessage = notificationMessage; return(View(viewModel)); } return(Redirect(Url.ContentUrl(ContentReference.StartPage))); }
public ActionResult Index(OrderConfirmationMailPage currentPage, int?orderNumber) { IPurchaseOrder order; if (PageEditing.PageIsInEditMode) { order = _confirmationService.CreateFakePurchaseOrder(); } else { order = _confirmationService.GetOrder(orderNumber.Value); if (order == null) { return(Redirect(Url.ContentUrl(ContentReference.StartPage))); } } var viewModel = CreateViewModel(currentPage, order); return(View(viewModel)); }
public async Task <ActionResult> GetRecommendations(string widgetType, string name, string value = "", int numberOfRecs = 4) { if (string.IsNullOrEmpty(widgetType) || PageEditing.PageIsInEditMode) { return(new EmptyResult()); } List <Recommendation> recommendations = null; TrackingResponseData response; switch (widgetType) { case "Home": response = await _trackingService.TrackHome(ControllerContext.HttpContext); recommendations = response.GetRecommendations(_referenceConverter, RecommendationsExtensions.Home) .ToList(); break; case "Basket": response = await _trackingService.TrackCart(ControllerContext.HttpContext, _cartService.LoadCart(_cartService.DefaultCartName, false).Cart); recommendations = response.GetRecommendations(_referenceConverter, RecommendationsExtensions.Basket) .ToList(); break; case "Checkout": response = await _trackingService.TrackCheckout(ControllerContext.HttpContext); recommendations = response.GetRecommendations(_referenceConverter, "Checkout") .ToList(); break; case "Wishlist": response = await _trackingService.TrackWishlist(ControllerContext.HttpContext); recommendations = response.GetRecommendations(_referenceConverter, "Wishlist") .ToList(); break; case "Order": IPurchaseOrder order = null; if (PageEditing.PageIsInEditMode) { break; } if (int.TryParse(ControllerContext.HttpContext.Request.QueryString["orderNumber"], out var orderNumber)) { order = _confirmationService.GetOrder(orderNumber); } if (order == null) { break; } response = await _trackingService.TrackOrder(ControllerContext.HttpContext, order); recommendations = response.GetRecommendations(_referenceConverter, "orderWidget") .ToList(); break; default: response = await _trackingService.TrackAttribute(ControllerContext.HttpContext, name, value); recommendations = response.GetRecommendations(_referenceConverter, "attributeWidget") .ToList(); break; } if (recommendations == null) { return(new EmptyResult()); } recommendations = recommendations.Take(numberOfRecs).ToList(); return(PartialView("/Features/Recommendations/Index.cshtml", _productService.GetRecommendedProductTileViewModels(recommendations))); }