Example #1
0
 /// <summary>
 /// Initializes a new <see cref="FilterExpression"/>
 /// </summary>
 /// <param name="field1">The left side of the expression</param>
 /// <param name="operator">The operator</param>
 /// <param name="field2">The right side of the expression</param>
 /// <param name="andOr">The connection between this and the next expression</param>
 public FilterExpression(object field1, FieldOperators @operator, object field2, FieldAndOr andOr)
 {
     AndOr    = andOr;
     Field1   = field1;
     Operator = @operator;
     Field2   = field2;
 }
Example #2
0
        /// <summary>
        /// Formats the Operator accordingly to the database dialect
        /// </summary>
        /// <param name="operator">The opeperator</param>
        /// <returns>A string containing the formatted operator</returns>
        protected virtual string FormatOperator(FieldOperators @operator)
        {
            if (Operators == null)
            {
                throw new Exception($"The '{nameof(Operators)}' Dictionary is null");
            }

            if (Operators.Count == 0)
            {
                throw new Exception($"The '{nameof(Operators)}' Dictionary is initialized but empty");
            }

            if (!Operators.ContainsKey(@operator))
            {
                throw new Exception($"The operator '{Enum.GetName(typeof(FieldOperators), @operator)}' is not defined");
            }

            return(Operators[@operator]);
        }
Example #3
0
 /// <summary>
 /// Initializes a new expression
 /// </summary>
 /// <param name="field">The Field to be Processed by the <see cref="Expression"/>.</param>
 /// <param name="operator">The Operator. See <see cref="FieldOperators"/> for reference</param>
 protected Expression(Field field, FieldOperators @operator) : this(field)
 {
     Operator = @operator;
 }
Example #4
0
 /// <summary>
 /// Initializes a new instance of an <see cref="FilterExpression{T}"/>.
 /// </summary>
 /// <param name="field">A <see cref="Field"/> to be processed by the expression</param>
 /// <param name="operator">The Operator. See <see cref="FieldOperators"/> for reference</param>
 /// <param name="values">A <see cref="IList{T}"/> of values</param>
 public FilterExpression(Field field, FieldOperators @operator, params T[] values) : this(field, @operator)
 {
     Values = values;
     ParseOperator();
 }
Example #5
0
 /// <summary>
 /// Initializes a new instance of an <see cref="FilterExpression{T}"/>.
 /// </summary>
 /// <param name="field">A <see cref="Field"/> to be processed by the expression</param>
 /// <param name="operator">The Operator. See <see cref="FieldOperators"/> for reference</param>
 /// <param name="values">A <see cref="IList{T}"/> of values</param>
 public FilterExpression(Field field, FieldOperators @operator, IList <T> values) : this(field, @operator)
 {
     Values = values;
     ParseOperator();
 }
Example #6
0
 /// <summary>
 /// Initializes a new instance of an <see cref="FilterExpression{T}"/>.
 /// </summary>
 /// <param name="field">A <see cref="Field"/> to be processed by the expression</param>
 /// <param name="value">The Value to be assigned to the field</param>
 /// <param name="operator">The Operator. See <see cref="FieldOperators"/> for reference</param>
 public FilterExpression(Field field, FieldOperators @operator, T value) : this(field, @operator)
 {
     Values.Add(value);
     ParseOperator();
 }
Example #7
0
 /// <summary>
 /// Initializes a new instance of an <see cref="FilterExpression{T}"/>.
 /// </summary>
 /// <param name="field">A <see cref="Field"/> to be processed by the expression</param>
 /// <param name="operator">The Operator. See <see cref="FieldOperators"/> for reference</param>
 public FilterExpression(Field field, FieldOperators @operator) : base(field, @operator)
 {
     Field = field;
     ParseOperator();
 }