/// <summary> /// Where parameter operand creation is called by DynamicQuery. /// See <see cref="esComparisonOperand"/> Enumeration. /// </summary> /// <param name="op">E.g., esComparisonOperand.Between</param> /// <param name="value1">The first value for this comparison</param> /// <param name="value2">The second value for this comparison</param> /// <returns>The esComparison returned to DynamicQuery</returns> public esComparison OP(esComparisonOperand op, object value1, object value2) { switch (op) { case esComparisonOperand.IsNull: case esComparisonOperand.IsNotNull: return CreateComparisonParameter(op); case esComparisonOperand.Equal: case esComparisonOperand.NotEqual: case esComparisonOperand.GreaterThan: case esComparisonOperand.GreaterThanOrEqual: case esComparisonOperand.LessThan: case esComparisonOperand.LessThanOrEqual: case esComparisonOperand.In: case esComparisonOperand.NotIn: case esComparisonOperand.Contains: return CreateComparisonParameter(op, value1); case esComparisonOperand.Like: return this.Like(value1, Convert.ToChar(value2)); case esComparisonOperand.NotLike: return this.NotLike(value1, Convert.ToChar(value2)); case esComparisonOperand.Between: return this.Between(value1, value2); default: throw new InvalidOperationException("Invalid Operand"); } }
/// <summary> /// Where parameter operand creation is called by DynamicQuery. /// See <see cref="esComparisonOperand"/> Enumeration. /// </summary> /// <param name="op">E.g., esComparisonOperand.IsNotNull</param> /// <param name="value">The value for this comparison</param> /// <returns>The esComparison returned to DynamicQuery</returns> public esComparison OP(esComparisonOperand op, object value) { switch (op) { case esComparisonOperand.IsNull: case esComparisonOperand.IsNotNull: return CreateComparisonParameter(op); case esComparisonOperand.Equal: case esComparisonOperand.NotEqual: case esComparisonOperand.GreaterThan: case esComparisonOperand.GreaterThanOrEqual: case esComparisonOperand.LessThan: case esComparisonOperand.LessThanOrEqual: case esComparisonOperand.Like: case esComparisonOperand.In: case esComparisonOperand.NotIn: case esComparisonOperand.NotLike: case esComparisonOperand.Contains: return CreateComparisonParameter(op, value); case esComparisonOperand.Between: throw new InvalidOperationException("Between requires two parameters"); default: throw new InvalidOperationException("Invalid Operand"); } }
private esComparison CreateComparisonParameter(esComparisonOperand operand) { esComparison comparison = new esComparison(this.query); comparison.Operand = operand; if (this.HasExpression) { comparison.data.Expression = this.Expression; } comparison.data.Column = this.Column; comparison.SubOperators = this.SubOperators; return comparison; }
/// <summary> /// Where parameter operand creation is called by DynamicQuery. /// See <see cref="esComparisonOperand"/> Enumeration. /// </summary> /// <param name="op">E.g., esComparisonOperand.IsNotNull</param> /// <returns>The esComparison returned to DynamicQuery</returns> public esComparison OP(esComparisonOperand op) { switch (op) { case esComparisonOperand.IsNotNull: case esComparisonOperand.IsNull: return CreateComparisonParameter(op); default: throw new InvalidOperationException("Operand requires at least one value"); } }
private esComparison CreateComparisonParameter(esComparisonOperand operand, object value) { esComparison comparison = null; esQueryItem qi = value as esQueryItem; if (Object.Equals(qi, null)) { comparison = new esComparison(this.query); comparison.Operand = operand; if (this.HasExpression) { comparison.data.Expression = this.Expression; } comparison.data.Column = this.Column; comparison.data.Value = value; comparison.SubOperators = this.SubOperators; } else { comparison = new esComparison(this.query); comparison.Operand = operand; comparison.data.Column = this.Column; comparison.data.ComparisonColumn = qi.Column; comparison.SubOperators = qi.SubOperators; } return comparison; }