/// <summary> /// Searches the source. /// </summary> /// <param name="searchCriteria">The search criteria.</param> /// <param name="includedProperties">The included properties.</param> /// <returns>Task<SearchResults<TTargetEntity, SearchCriteria>>.</returns> public virtual async Task <SearchResults <TTargetEntity, SearchCriteria> > SearchSource(SearchCriteria searchCriteria, IEnumerable <string> includedProperties = null) { searchCriteria.ContextBag["HA"] = false; var response = await ExecuteSearch(searchCriteria, includedProperties); var results = response?.Data ?? new List <TTargetEntity>(); //TODO: search does not return metadata....what should we do here? // if we got back less than we asked for, then there are no more results, otherwise, pretend there is one more var totalRecords = results.Count < searchCriteria.PageSize ? results.Count : results.Count + 1; return(_resultsBuilder.Build(results, searchCriteria, totalRecords)); }
/// <summary> /// Searches the content of the result. /// </summary> /// <param name="results">The results.</param> /// <param name="criteria">The criteria.</param> /// <param name="totalRecords">The total records.</param> /// <returns>SearchResults<T, C>.</returns> protected virtual SearchResults <TSummery, TCriteria> SearchResultContent(List <TSummery> results, TCriteria criteria, int totalRecords) { return(_resultsBuilder.Build(results, criteria, totalRecords)); }