protected JobAdSearchResults SortFolder(IMember member, Guid folderId, JobAdSortQuery query) { var reader = _indexWriter.getReader(); var sorter = new Sorter(reader); var filter = _indexer.GetFilter( _jobAdSortFiltersQuery.GetFolderIncludeJobAdIds(member, folderId), _jobAdSortFiltersQuery.GetFolderExcludeJobAdIds(member, folderId)); var sort = _indexer.GetSort(member, query); var searchResults = sorter.Sort(filter, sort == null ? null : sort.getSort(), query.Skip, query.Take ?? reader.maxDoc()); return(searchResults); }
private ICollection <Guid> FolderFilter(IMember member, Guid folderId, IEnumerable <Guid> allJobAdIds) { var includeJobAdIds = _jobAdSortFiltersQuery.GetFolderIncludeJobAdIds(member, folderId); var jobAdIds = includeJobAdIds != null ? allJobAdIds.Intersect(includeJobAdIds) : allJobAdIds; var excludeJobAdIds = _jobAdSortFiltersQuery.GetFolderExcludeJobAdIds(member, folderId); jobAdIds = excludeJobAdIds != null ? jobAdIds.Except(excludeJobAdIds) : jobAdIds; return(jobAdIds.ToArray()); }
JobAdSearchResults IJobAdSortService.SortFolder(Guid?memberId, Guid folderId, JobAdSortQuery query) { return(Sort(memberId, query, m => _jobAdSortFiltersQuery.GetFolderIncludeJobAdIds(m, folderId), m => _jobAdSortFiltersQuery.GetFolderExcludeJobAdIds(m, folderId))); }