Table of Contents

Class FilterBuilder

Namespace: Casewhere.Runtime.DataObjectExpressions.DSL
Assembly: Casewhere.Runtime.DataObjectExpressions.dll

A builder for data query in runtime scripts

public class FilterBuilder

Inheritance

objectFilterBuilder

Inherited Members

object.ToString(), object.Equals(object), object.Equals(object, object), object.ReferenceEquals(object, object), object.GetHashCode(), object.GetType(), object.MemberwiseClone()

Extension Methods

ObjectExtension.ConvertToBsonValue(object), EnumExtensions.DeepClone<FilterBuilder>(FilterBuilder)

Examples

var filter = FilterBuilder
    .Create()
    .Eq("DepartmentId", departmentId)
    .Eq("Active", true)
    .Build();
var result = dataApi.Search(DataObjectApiQuery
    .For("Employee")
    .FilterBy(filter));

Constructors

FilterBuilder()

public FilterBuilder()

Methods

And(params object[])

Creates an And filter.

public FilterBuilder And(params object[] filters)

Parameters

filters object[]

The filters.

Returns

FilterBuilder

The builder itself for method chaining.

AnyEq(string, object)

Creates an equality filter for an array field.

public FilterBuilder AnyEq(string field, object value)

Parameters

field string

The field.

value object

The value.

Returns

FilterBuilder

The builder itself for method chaining.

AnyGt(string, object)

Creates a Greater Than filter for an array field.

public FilterBuilder AnyGt(string field, object value)

Parameters

field string

The field.

value object

The value.

Returns

FilterBuilder

The builder itself for method chaining.

AnyGte(string, object)

Creates a Greater Than Or Equal filter for an array field.

public FilterBuilder AnyGte(string field, object value)

Parameters

field string

The field.

value object

The value.

Returns

FilterBuilder

The builder itself for method chaining.

AnyIn(string, IEnumerable<object>)

Creates an In filter for an array field.

public FilterBuilder AnyIn(string field, IEnumerable<object> values)

Parameters

field string

The field.

values IEnumerable<object>

The values.

Returns

FilterBuilder

The builder itself for method chaining.

AnyLt(string, object)

Creates a Less Than filter for an array field.

public FilterBuilder AnyLt(string field, object value)

Parameters

field string

The field.

value object

The value.

Returns

FilterBuilder

The builder itself for method chaining.

AnyLte(string, object)

Creates a Less Than Or Equal filter for an array field.

public FilterBuilder AnyLte(string field, object value)

Parameters

field string

The field.

value object

The value.

Returns

FilterBuilder

The builder itself for method chaining.

AnyNe(string, object)

Creates a Not Equal filter for an array field.

public FilterBuilder AnyNe(string field, object value)

Parameters

field string

The field.

value object

The value.

Returns

FilterBuilder

The builder itself for method chaining.

AnyNin(string, IEnumerable<object>)

Creates a Not In filter for an array field.

public FilterBuilder AnyNin(string field, IEnumerable<object> values)

Parameters

field string

The field.

values IEnumerable<object>

The values.

Returns

FilterBuilder

The builder itself for method chaining.

Build()

Build the filter object for query api. This method should be called at last step of the building process.

public DynamicFilter Build()

Returns

DynamicFilter

The Casewhere.Runtime.DataObjectExpressions.DSL.DynamicFilter object for query api.

Create()

Factory method to create new filter builder objects.

public static FilterBuilder Create()

Returns

FilterBuilder

Builder object.

Eq(string, object)

Creates an equality filter.

public FilterBuilder Eq(string field, object value)

Parameters

field string

The field.

value object

The value.

Returns

FilterBuilder

The builder itself for method chaining.

Exists(string, bool)

Creates an exists filter.

public FilterBuilder Exists(string name, bool exists = true)

Parameters

name string

The field.

exists bool

if set to true [exists].

Returns

FilterBuilder

The builder itself for method chaining.

GeoWithin(string, GeoCoordinate[])

Creates a geo within filter.

public FilterBuilder GeoWithin(string field, GeoCoordinate[] coordinates)

Parameters

field string

The field name

coordinates GeoCoordinate[]

An array of coordinates pair.

Returns

FilterBuilder

A geo within filter.

GeoWithinBox(string, double, double, double, double)

Creates a geo within box filter.

public FilterBuilder GeoWithinBox(string field, double lowerLeftX, double lowerLeftY, double upperRightX, double upperRightY)

Parameters

field string

The field.

lowerLeftX double

The lower left x.

lowerLeftY double

The lower left y.

upperRightX double

The upper right x.

upperRightY double

The upper right y.

Returns

FilterBuilder

A geo within box filter.

GeoWithinCenter(string, double, double, double)

Creates a geo within center filter.

public FilterBuilder GeoWithinCenter(string field, double x, double y, double radius)

Parameters

field string

The field.

x double

The x.

y double

The y.

radius double

The radius.

Returns

FilterBuilder

A geo within center filter.

GeoWithinCenterSphere(string, double, double, double)

Creates a geo within center sphere filter.

public FilterBuilder GeoWithinCenterSphere(string field, double x, double y, double radius)

Parameters

field string

The field.

x double

The x.

y double

The y.

radius double

The radius.

Returns

FilterBuilder

A geo within center sphere filter.

GeoWithinPolygon(string, double[,])

Creates a geo within polygon filter.

public FilterBuilder GeoWithinPolygon(string field, double[,] points)

Parameters

field string

The field.

points double[,]

The points.

Returns

FilterBuilder

A geo within polygon filter.

Gt(string, object)

Creates a Greater Than filter.

public FilterBuilder Gt(string field, object value)

Parameters

field string

The field.

value object

The value.

Returns

FilterBuilder

The builder itself for method chaining.

Gte(string, object)

Creates a Greater Than Or Equal filter.

public FilterBuilder Gte(string field, object value)

Parameters

field string

The field.

value object

The value.

Returns

FilterBuilder

The builder itself for method chaining.

In(string, IEnumerable<object>)

Creates an In filter.

public FilterBuilder In(string field, IEnumerable<object> values)

Parameters

field string

The field.

values IEnumerable<object>

The values.

Returns

FilterBuilder

The builder itself for method chaining.

Lt(string, object)

Creates a Less Than filter.

public FilterBuilder Lt(string field, object value)

Parameters

field string

The field.

value object

The value.

Returns

FilterBuilder

The builder itself for method chaining.

Lte(string, object)

Creates a Less Than Or Equal filter.

public FilterBuilder Lte(string field, object value)

Parameters

field string

The field.

value object

The value.

Returns

FilterBuilder

The builder itself for method chaining.

Ne(string, object)

Creates a not equal filter.

public FilterBuilder Ne(string field, object value)

Parameters

field string

The field.

value object

The value.

Returns

FilterBuilder

The builder itself for method chaining.

Nin(string, IEnumerable<object>)

Creates a not in filter.

public FilterBuilder Nin(string field, IEnumerable<object> values)

Parameters

field string

The field.

values IEnumerable<object>

The values.

Returns

FilterBuilder

The builder itself for method chaining.

Or(params object[])

Creates an Or filter.

public FilterBuilder Or(params object[] filters)

Parameters

filters object[]

The filters.

Returns

FilterBuilder

The builder itself for method chaining.

Examples

Example 1: For simple scenarios, we can use sugar syntax like below

var employeepFilter = FilterBuilder.Create()
    .Eq("DepartmentId", departmentId)
    .Or(new { Level = 3 }, new { Level = 5 })
    .Build();

Example 2: Or with multiple conditions

var filter1 = FilterBuilder.Create().Eq("Level", 3).Build();
var filter2 = FilterBuilder.Create().Eq("Level", 5).Build();
var filter3 = FilterBuilder.Create().Gt("Level", 7).Build();
var employeepFilter = FilterBuilder.Create()
    .Eq("DepartmentId", departmentId)
    .Or(filter1, filter2, filter3)
    .Build();

Regex(string, string, string)

Create a Regex filter

public FilterBuilder Regex(string name, string search, string options = "")

Parameters

name string

search string

options string

Returns

FilterBuilder

Text(string)

Creates a Text filter.

public FilterBuilder Text(string search)

Parameters

search string

The search.

Returns

FilterBuilder

The builder itself for method chaining.