Class FilterBuilder
Namespace: Casewhere.Runtime.DataObjectExpressions.DSL
Assembly: Casewhere.Runtime.DataObjectExpressions.dll
A builder for data query in runtime scripts
public class FilterBuilder
Inheritance
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
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
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
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
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
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
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
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
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
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
The Casewhere.Runtime.DataObjectExpressions.DSL.DynamicFilter object for query api.
Create()
Factory method to create new filter builder objects.
public static FilterBuilder Create()
Returns
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Text(string)
Creates a Text filter.
public FilterBuilder Text(string search)
Parameters
search
string
The search.
Returns
The builder itself for method chaining.