public CatalogController(InventoryManager inventoryManager, ContactFactory contactFactory, ProductViewModelFactory productViewModelFactory, AccountManager accountManager, CatalogManager catalogManager, GiftCardManager giftCardManager, PricingManager pricingManager, CartManager cartManager, CommerceUserContext commerceUserContext, CatalogItemContext catalogItemContext, CatalogUrlService catalogUrlRepository, StorefrontContext storefrontContext, CategoryViewModelFactory categoryViewModelFactory, GetChildProductsService getChildProductsService)
 {
     InventoryManager         = inventoryManager;
     ProductViewModelFactory  = productViewModelFactory;
     CatalogManager           = catalogManager;
     GiftCardManager          = giftCardManager;
     CommerceUserContext      = commerceUserContext;
     CatalogItemContext       = catalogItemContext;
     StorefrontContext        = storefrontContext;
     CategoryViewModelFactory = categoryViewModelFactory;
     GetChildProductsService  = getChildProductsService;
 }
        public ProductFacetsViewModel GetProductFacetsViewModel(SearchOptions productSearchOptions, Category category, Rendering rendering)
        {
            SearchResults childProducts = null;

            if (productSearchOptions != null)
            {
                childProducts = GetChildProductsService.GetChildProducts(category, productSearchOptions);
            }

            var viewModel = new ProductFacetsViewModel(childProducts?.Facets ?? productSearchOptions?.FacetFields);

            return(viewModel);
        }
        public PaginationViewModel GetPaginationViewModel(SearchOptions productSearchOptions, Category category, Rendering rendering)
        {
            var viewModel = new PaginationViewModel();

            SearchResults childProducts = null;

            if (productSearchOptions != null)
            {
                childProducts = GetChildProductsService.GetChildProducts(category, productSearchOptions);
            }

            viewModel.Initialize(rendering, childProducts, productSearchOptions);

            return(viewModel);
        }
        public ProductListHeaderViewModel GetProductListHeaderViewModel(SearchOptions productSearchOptions, IEnumerable <QuerySortField> sortFields, Category category, Rendering rendering)
        {
            var viewModel = new ProductListHeaderViewModel();

            SearchResults childProducts = null;

            if (productSearchOptions != null)
            {
                childProducts = GetChildProductsService.GetChildProducts(category, productSearchOptions);
            }

            viewModel.Initialize(rendering, childProducts, sortFields, productSearchOptions);

            return(viewModel);
        }
 public CategoryViewModelFactory(GetChildProductsService getChildProductsService, CatalogManager catalogManager, InventoryManager inventoryManager)
 {
     GetChildProductsService = getChildProductsService;
     CatalogManager          = catalogManager;
     InventoryManager        = inventoryManager;
 }