/// <summary> /// Add a "is not blank" filter to the supplied filter. /// </summary> /// <param name="predicate">Instance to which we are adding a filter.</param> /// <param name="column">Field to filter on.</param> /// <returns>A reference to the instance to which we added the filter.</returns> public static DSPredicate DSIsNotBlank(this DSPredicate predicate, string column) { predicate.Add(new DSPredicate { Column = column, Operator = DSSearchOperatorEnum.IsNotBlank, }); return(predicate); }
/// <summary> /// Add a "greater than" filter to the supplied filter. /// </summary> /// <param name="predicate">Instance to which we are adding a filter.</param> /// <param name="column">Field to filter on.</param> /// <param name="value">Value to apply.</param> /// <returns>A reference to the instance to which we added the filter.</returns> public static DSPredicate DSGreaterThan(this DSPredicate predicate, string column, object value) { predicate.Add(new DSPredicate { Column = column, Operator = DSSearchOperatorEnum.GreaterThan, Value = value, }); return(predicate); }
/// <summary> /// Add a "ends with" filter to the supplied filter. /// </summary> /// <param name="predicate">Instance to which we are adding a filter.</param> /// <param name="column">Field to filter on.</param> /// <param name="value">Value to apply.</param> /// <returns>A reference to the instance to which we added the filter.</returns> public static DSPredicate DSEndsWith(this DSPredicate predicate, string column, string value) { predicate.Add(new DSPredicate { Column = column, Operator = DSSearchOperatorEnum.EndsWith, Value = value, }); return(predicate); }
/// <summary> /// Add a "does not equal" filter to the supplied filter. /// </summary> /// <param name="predicate">Instance to which we are adding a filter.</param> /// <param name="column">Field to filter on.</param> /// <param name="value">Value to apply.</param> /// <returns>A reference to the instance to which we added the filter.</returns> public static DSPredicate DSDoesNotEqual(this DSPredicate predicate, string column, object value) { predicate.Add(new DSPredicate { Column = column, Operator = DSSearchOperatorEnum.DoesNotEqual, Value = value, }); return(predicate); }
/// <summary> /// Add a "in" filter to the supplied filter. /// </summary> /// <param name="predicate">Instance to which we are adding a filter.</param> /// <param name="column">Field to filter on.</param> /// <param name="value">List of values to apply.</param> /// <returns>A reference to the instance to which we added the filter.</returns> public static DSPredicate DSIn(this DSPredicate predicate, string column, List <object> value) { predicate.Add(new DSPredicate { Column = column, Operator = DSSearchOperatorEnum.In, Value = value, }); return(predicate); }
/// <summary> /// Add the supplied filter appropriately. /// </summary> /// <param name="clause">Filter to add.</param> /// <returns>A reference to this instance.</returns> public DSPredicate Add(DSPredicate clause) { if (!clause.IsValid) { throw new DSSearchPredicateIsEmptyException(); } if (string.IsNullOrWhiteSpace(Column)) { if (IsGroup || string.IsNullOrWhiteSpace(clause.Column)) { // Simply append this Group \ Predicate this.Predicates.Add(clause); } else { // The new Predicate needs to be copied into this one this.Column = clause.Column; this.Operator = clause.Operator; this.ValueType = clause.ValueType; this.Value = clause.Value; } } else { // In this case we are adding to a "single" predicate, so make the current predicate the first of the new "group" var clone = new DSPredicate() { Column = this.Column, Operator = this.Operator, ValueType = this.ValueType, Value = this.Value, }; this.Column = null; this.Operator = DSSearchOperatorEnum.None; this.ValueType = null; this.Value = null; this.Predicates.Add(clone); // Append the new predicate to the group this.Predicates.Add(clause); } return(this); }