public dynamic GetAutoQuery <T>(IQueryable <T> query) where T : class { QueryString = _queryStringAccessor.QueryString; ClauseValueManager = _clauseValueManager; // Reset the TotalCountQuery TotalCountQuery = null; // No query string, get only selectable columns if (string.IsNullOrEmpty(QueryString)) { _clauseValueManager.SetDefaults(typeof(T)); TotalCountQuery = query; return(GetDefaultSelectableQuery(query)); } GetClauses <T>(); var criterias = _profile.IsClauseAllowed(ClauseType.Filter) ? GetCriterias <T>().ToList() : null; query = QueryBuilder.AddCriterias(query, criterias, _criteriaFilterManager); TotalCountQuery = query; var queryResult = QueryBuilder.Build(ClauseValueManager, query, _profile); return(queryResult); }