Example #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);
        }
        public void GetGiftCardViewModel_should_apply_GiftCardSpecialHandling_For_NonGiftCardItems(Database db)
        {
            //arrange
            Item fakeItem = BuildFakeItem(db);

            MockContexts(db);
            decimal testRating = new decimal(5.0);

            _catalogManagerMock.GetProductRating(fakeItem).Returns(testRating);
            var rep = new GiftCardRepository(_accountManagerMock, _contactFactoryMock, _catalogManagerMock);

            // act
            var product = rep.GetGiftCardViewModel(fakeItem, new Rendering());

            // assert
            product.CustomerAverageRating.Should().Be(testRating);
        }