public static ISearchResult <TSearchParameters, TDocument> Search <TSearchParameters, TDocument>(this IElasticsearchRepository repository, IElasticClientQueryObject <SearchResult <TSearchParameters, TDocument> > query) where TSearchParameters : class, IPagingParameters, ISortingParameters, new() where TDocument : class { return(repository.Query(query)); }