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);
        }
Exemple #2
0
        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));
        }
Exemple #3
0
 public static IEnumerable <Recommendation> GetCrossSellProductsRecommendations(this TrackingResponseData response, ReferenceConverter referenceConverter)
 {
     return(response.GetRecommendationGroups(referenceConverter).Where(x => x.Area == ProductCrossSells).SelectMany(x => x.Recommendations));
 }
Exemple #4
0
 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);