protected async Task AddInfomationViewModel(IDemoEntryViewModelBase viewModel, string productCode, bool skipTracking) { viewModel.Reviews = GetReviews(productCode); var trackingResponse = new TrackingResponseData(); if (!skipTracking) { trackingResponse = await _recommendationService.TrackProduct(HttpContext, productCode, false); } viewModel.AlternativeProducts = trackingResponse.GetAlternativeProductsRecommendations(_referenceConverter); viewModel.CrossSellProducts = trackingResponse.GetCrossSellProductsRecommendations(_referenceConverter); }
public ActionResult Index(FashionProduct currentContent, string entryCode = "", bool useQuickview = false, bool skipTracking = false) { var viewModel = _viewModelFactory.Create(currentContent, entryCode); if (_isInEditMode && viewModel.Variant == null) { var emptyViewName = "ProductWithoutEntries"; return(Request.IsAjaxRequest() ? PartialView(emptyViewName, viewModel) : (ActionResult)View(emptyViewName, viewModel)); } if (viewModel.Variant == null) { return(HttpNotFound()); } if (useQuickview) { if (!skipTracking) { _recommendationService.SendProductTracking(HttpContext, currentContent.Code, RetrieveRecommendationMode.Disabled); } return(PartialView("_Quickview", viewModel)); } var trackingResponse = new TrackingResponseData(); if (!skipTracking) { trackingResponse = _recommendationService.SendProductTracking(HttpContext, currentContent.Code, RetrieveRecommendationMode.Enabled); } viewModel.AlternativeProducts = trackingResponse.GetAlternativeProductsRecommendations(_referenceConverter).Take(3); viewModel.CrossSellProducts = trackingResponse.GetCrossSellProductsRecommendations(_referenceConverter); return(Request.IsAjaxRequest() ? PartialView(viewModel) : (ActionResult)View(viewModel)); }
public static IEnumerable <Recommendation> GetCrossSellProductsRecommendations(this TrackingResponseData response, ReferenceConverter referenceConverter) { return(response.GetRecommendationGroups(referenceConverter).Where(x => x.Area == ProductCrossSells).SelectMany(x => x.Recommendations)); }
public static IEnumerable <Recommendation> GetSearchResultRecommendations(this TrackingResponseData response, ReferenceConverter referenceConverter) { return(response.GetRecommendationGroups(referenceConverter).Where(x => x.Area == SearchResult).SelectMany(x => x.Recommendations)); }
public static IEnumerable <Recommendation> GetRecommendations(this TrackingResponseData response, ReferenceConverter referenceConverter, string area) => response.GetRecommendationGroups(referenceConverter).Where(x => x.Area == area).SelectMany(x => x.Recommendations);
public static IEnumerable <Recommendation> GetAlternativeProductsRecommendations(this TrackingResponseData response, ReferenceConverter referenceConverter) => response.GetRecommendationGroups(referenceConverter).Where(x => x.Area == ProductAlternatives).SelectMany(x => x.Recommendations);