/// <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)); }
/// <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)); }
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); }