コード例 #1
0
        /// <summary>
        /// Search categories by given criteria
        /// </summary>
        /// <param name="criteria"></param>
        /// <returns></returns>
        public virtual IPagedList <Category> SearchCategories(CategorySearchCriteria criteria)
        {
            var workContext = _workContextFactory();

            criteria = criteria.Clone();
            var searchCriteria = criteria.ToCategorySearchDto(workContext);
            var categories     = _searchApi.SearchApiModule.SearchCategories(workContext.CurrentStore.Id, searchCriteria).Categories.Select(x => x.ToCategory(workContext.CurrentLanguage, workContext.CurrentStore)).ToList();

            //API temporary does not support paginating request to categories (that's uses PagedList with superset)
            return(new PagedList <Category>(categories, criteria.PageNumber, criteria.PageSize));
        }
コード例 #2
0
        /// <summary>
        /// Async search categories by given criteria
        /// </summary>
        /// <param name="criteria"></param>
        /// <returns></returns>
        public virtual async Task <IPagedList <Category> > SearchCategoriesAsync(CategorySearchCriteria criteria)
        {
            var workContext = _workContextFactory();

            criteria = criteria.Clone();
            var searchCriteria = criteria.ToCategorySearchDto(workContext);
            var result         = await _searchApi.SearchApiModule.SearchCategoriesAsync(workContext.CurrentStore.Id, searchCriteria);

            //API temporary does not support paginating request to categories (that's uses PagedList with superset instead StaticPagedList)
            return(new PagedList <Category>(result.Categories.Select(x => x.ToCategory(workContext.CurrentLanguage, workContext.CurrentStore)), criteria.PageNumber, criteria.PageSize));
        }
コード例 #3
0
        private async Task <IPagedList <Category> > InnerSearchCategoriesAsync(CategorySearchCriteria criteria, WorkContext workContext)
        {
            criteria = criteria.Clone();
            var searchCriteria = criteria.ToCategorySearchDto(workContext);
            var result         = await _searchApi.SearchApiModule.SearchCategoriesAsync(workContext.CurrentStore.Id, searchCriteria);

            var retVal = new PagedList <Category>(result.Categories.Select(x => x.ToCategory(workContext.CurrentLanguage, workContext.CurrentStore)), criteria.PageNumber, criteria.PageSize);

            //Set  lazy loading for child categories
            SetChildCategoriesLazyLoading(retVal.ToArray());
            return(retVal);
        }