Exemple #1
0
        public MultipleProductSearchResults GetMultipleProductList(Item datasource, Rendering currentRendering, CommerceSearchOptions productSearchOptions)
        {
            var multipleProductSearchResults = GetMultipleProductSearchResults(datasource, productSearchOptions);

            if (multipleProductSearchResults != null)
            {
                multipleProductSearchResults.Initialize(currentRendering);
                multipleProductSearchResults.DisplayName = datasource.DisplayName;

                var products = multipleProductSearchResults.ProductSearchResults.SelectMany(productSearchResult => productSearchResult.Products).ToList();
                _catalogManager.GetProductBulkPrices(this.CurrentVisitorContext, products);
                _inventoryManager.GetProductsStockStatusForList(this.CurrentStorefront, products);

                foreach (var productViewModel in products)
                {
                    Item productItem = multipleProductSearchResults.SearchResults
                                       .SelectMany(productSearchResult => productSearchResult.SearchResultItems)
                                       .FirstOrDefault(item => item.Name == productViewModel.ProductId);
                    productViewModel.CustomerAverageRating = _catalogManager.GetProductRating(productItem);
                }
            }

            return(multipleProductSearchResults);
        }