private void TrackProductImpressions(WineProductSearchResult wineProductSearchResult) { foreach (var product in wineProductSearchResult.Products) { GoogleAnalyticsTracking tracker = new GoogleAnalyticsTracking(ControllerContext.HttpContext); tracker.ProductImpression( product.Code, product.DisplayName, null, product.BrandName, null, "Wine Product Search Block"); } }
// GET: RelatedProductsBlock public override ActionResult Index(WineProductSearchBlock currentContent) { try { // We need to know which language the page we're hosted on is string language = ControllerContext.RequestContext.GetLanguage(); List <ProductListViewModel> productListViewModels = currentContent.GetSearchResults(language); if (productListViewModels == null) { // No hits, but we could still have manually added products productListViewModels = new List <ProductListViewModel>(); } // Override result with priority products if (currentContent.Products != null) { foreach (var contentAreaItem in currentContent.Products.Items) { var item = contentAreaItem.GetContent(); if (item != null) { WineSKUContent wineSkuContent = _contentLoader.Get <WineSKUContent>(item.ContentLink); if (wineSkuContent != null) { // Remove priority products from list productListViewModels.RemoveAll( x => x.ContentLink.CompareToIgnoreWorkID(wineSkuContent.ContentLink)); // Add to beginning ProductListViewModel priorityProduct = _productService.GetProductListViewModel(wineSkuContent); productListViewModels.Insert(0, priorityProduct); } } } } if (productListViewModels.Count > currentContent.ResultsPerPage) { productListViewModels = productListViewModels.Take(currentContent.ResultsPerPage).ToList(); } WineProductSearchResult wineProductSearchResult = new WineProductSearchResult { Heading = currentContent.Heading, Products = productListViewModels }; // Track impressions TrackProductImpressions(wineProductSearchResult); return(View(wineProductSearchResult)); } catch (ServiceException) { return(View("FindError")); } }