Exemplo n.º 1
0
        /// <summary>
        /// Initializes the view model
        /// </summary>
        /// <param name="rendering">The rendering</param>
        /// <param name="childCategories">The list of child categories</param>
        public void Initialize(Rendering rendering, CategorySearchResults childCategories)
        {
            base.Initialize(rendering);

            if (childCategories != null)
            {
                ChildCategories = childCategories.CategoryItems;
            }
        }
Exemplo n.º 2
0
        public CategorySearchResults SearchByCategory(Pagination pagination)
        {
            if (pagination == null)
            {
                pagination = new Pagination();
            }

            var query = _findClient.Search <FoundationPageData>();

            query = query.FilterByCategories(pagination.Categories);

            if (pagination.Sort == CategorySorting.PublishedDate.ToString())
            {
                if (pagination.SortDirection.ToLower() == "asc")
                {
                    query = query.OrderBy(x => x.StartPublish);
                }
                else
                {
                    query = query.OrderByDescending(x => x.StartPublish);
                }
            }

            if (pagination.Sort == CategorySorting.Name.ToString())
            {
                if (pagination.SortDirection.ToLower() == "asc")
                {
                    query = query.OrderBy(x => x.Name);
                }
                else
                {
                    query = query.OrderByDescending(x => x.Name);
                }
            }

            query = query.Skip((pagination.Page - 1) * pagination.PageSize).Take(pagination.PageSize);
            var results = query.GetContentResult();
            var model   = new CategorySearchResults
            {
                Pagination   = pagination,
                RelatedPages = results
            };

            model.Pagination.TotalMatching = results.TotalMatching;
            model.Pagination.TotalPage     = (model.Pagination.TotalMatching / pagination.PageSize) + (model.Pagination.TotalMatching % pagination.PageSize > 0 ? 1 : 0);

            return(model);
        }
Exemplo n.º 3
0
        private NavigationViewModel GetNavigationViewModel(Item categoryItem, Item datasource, Rendering currentRendering)
        {
            var cacheKey = string.Format("Navigation/{0}", categoryItem.Name);

            if (this.CurrentSiteContext.Items[cacheKey] != null)
            {
                return((NavigationViewModel)this.CurrentSiteContext.Items[cacheKey]);
            }

            var navigationViewModel = new NavigationViewModel();
            CategorySearchResults childCategories = GetChildCategories(datasource, new CommerceSearchOptions(), categoryItem);

            navigationViewModel.Initialize(currentRendering, childCategories, categoryItem.ID);
            this.CurrentSiteContext.Items[cacheKey] = navigationViewModel;

            return(navigationViewModel);
        }
        /// <summary>
        /// This method returns child categories for this category
        /// </summary>
        /// <param name="searchOptions">The options to perform the search with</param>
        /// <param name="categoryItem">The category item whose children to retrieve</param>
        /// <returns>A list of child categories</returns>
        protected CategorySearchResults GetChildCategories(CommerceSearchOptions searchOptions, Item categoryItem)
        {
            var returnList         = new List <Item>();
            var totalPageCount     = 0;
            var totalCategoryCount = 0;

            if (Item != null)
            {
                var searchResponse = SearchNavigation.GetCategoryChildCategories(categoryItem.ID, searchOptions);

                returnList.AddRange(searchResponse.ResponseItems);

                totalCategoryCount = searchResponse.TotalItemCount;
                totalPageCount     = searchResponse.TotalPageCount;
            }

            var results = new CategorySearchResults(returnList, totalCategoryCount, totalPageCount, searchOptions.StartPageIndex, new List <FacetCategory>());

            return(results);
        }
        /// <summary>
        /// Builds a navigation view model or retrieves it if it already exists
        /// </summary>
        /// <param name="categoryItem">The category item to base the view model on</param>
        /// <param name="rendering">The rendering to initialize the model with</param>
        /// <returns>
        /// A category view model
        /// </returns>
        protected virtual NavigationViewModel GetNavigationViewModel(Item categoryItem, Rendering rendering)
        {
            string cacheKey = "Navigation/" + categoryItem.Name;
            bool   noCache  = (string.IsNullOrEmpty(categoryItem.Name));

            if (this.CurrentSiteContext.Items[cacheKey] != null && !noCache)
            {
                return((NavigationViewModel)this.CurrentSiteContext.Items[cacheKey]);
            }

            var navigationViewModel = new NavigationViewModel();
            CategorySearchResults childCategories = GetChildCategories(new CommerceSearchOptions(), categoryItem);

            navigationViewModel.Initialize(rendering, childCategories);
            if (noCache)
            {
                return(navigationViewModel);
            }

            this.CurrentSiteContext.Items[cacheKey] = navigationViewModel;
            return(navigationViewModel);
        }
Exemplo n.º 6
0
        /// <summary>
        /// This method returns child categories for this category
        /// </summary>
        /// <param name="searchOptions">The options to perform the search with</param>
        /// <param name="categoryItem">The category item whose children to retrieve</param>
        /// <returns>A list of child categories</returns>       
        protected CategorySearchResults GetChildCategories(CommerceSearchOptions searchOptions, Item categoryItem)
        {
            var returnList = new List<Item>();
            var totalPageCount = 0;
            var totalCategoryCount = 0;

            if (Item != null)
            {
                var searchResponse = SearchNavigation.GetCategoryChildCategories(categoryItem.ID, searchOptions);

                returnList.AddRange(searchResponse.ResponseItems);

                totalCategoryCount = searchResponse.TotalItemCount;
                totalPageCount = searchResponse.TotalPageCount;
            }

            var results = new CategorySearchResults(returnList, totalCategoryCount, totalPageCount, searchOptions.StartPageIndex, new List<FacetCategory>());

            return results;
        }