public SqlQuerySpec BuildSqlQuerySpec(SearchOptions searchOptions) { EnsureArg.IsNotNull(searchOptions, nameof(searchOptions)); if (searchOptions.CountOnly) { AppendSelectFromRoot("VALUE COUNT(1)"); } else { AppendSelectFromRoot(); } AppendSystemDataFilter("WHERE"); var expressionQueryBuilder = new ExpressionQueryBuilder( _queryBuilder, _queryParameterManager); if (searchOptions.Expression != null) { _queryBuilder.Append("AND "); searchOptions.Expression.AcceptVisitor(expressionQueryBuilder); } if (searchOptions.CompartmentType != null) { AppendArrayContainsFilter( "AND", (GetCompartmentIndicesParamName(searchOptions.CompartmentType.Value), searchOptions.CompartmentId)); } AppendFilterCondition( "AND", (KnownResourceWrapperProperties.IsHistory, false), (KnownResourceWrapperProperties.IsDeleted, false)); SqlQuerySpec query = new SqlQuerySpec( _queryBuilder.ToString(), _queryParameterManager.ToSqlParameterCollection()); return(query); }
public SqlQuerySpec BuildSqlQuerySpec(SearchOptions searchOptions, bool calculateTotalCount = false) { EnsureArg.IsNotNull(searchOptions, nameof(searchOptions)); if (searchOptions.CountOnly || calculateTotalCount) { AppendSelectFromRoot("VALUE COUNT(1)"); } else { AppendSelectFromRoot(); } AppendSystemDataFilter(); var expressionQueryBuilder = new ExpressionQueryBuilder( _queryBuilder, _queryParameterManager); if (searchOptions.Expression != null) { _queryBuilder.Append("AND "); searchOptions.Expression.AcceptVisitor(expressionQueryBuilder); } AppendFilterCondition( "AND", (KnownResourceWrapperProperties.IsHistory, false), (KnownResourceWrapperProperties.IsDeleted, false)); SqlQuerySpec query = new SqlQuerySpec( _queryBuilder.ToString(), _queryParameterManager.ToSqlParameterCollection()); return(query); }