Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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);
        }
Example #4
0
        /// <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);
        }
Example #5
0
        /// <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);
        }
Example #6
0
        /// <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);
        }