public SubQuery(List <FieldQuery> oFieldQueries, OperatorType oOperatorType) { switch (oFieldQueries.Capacity) { case 1: foreach (FieldQuery QryExp in oFieldQueries) { _StartExpression += QryExp.Expression; } break; default: FieldQuery oLastQueryExp = oFieldQueries.Last <FieldQuery>(); foreach (FieldQuery QryExp in oFieldQueries) { if (!QryExp.Equals(oLastQueryExp)) { _StartExpression += QryExp.ExpressionOpearator.StartTag; _StartExpression += QryExp.Expression; _EndExpression += QryExp.ExpressionOpearator.EndTag; } else { _StartExpression += QryExp.Expression; } } break; } _Expression += _StartExpression; _Expression += _EndExpression; QBOperator oOperator = new QBOperator(oOperatorType); _ExpressionOpearator = oOperator; }
/// <summary> /// oField for field details, like internalName, Value, and DataType /// oOperationType for same field opeartion, ex eq, neq etc /// oOperatorType for next field operator, ex And or /// </summary> /// <param name="oField"></param> /// <param name="oOperationType"></param> /// <param name="oOperatorType"></param> public FieldQuery(QBField oField, OperationType oOperationType, OperatorType oOperatorType) { QBOperation oOperation = new QBOperation(oOperationType); if (oOperationType == OperationType.IsNull || oOperationType == OperationType.IsNotNull) { _Expression = string.Format("{0}{1}{2}", oOperation.StartTag, oField.NullExpression, oOperation.EndTag); } else { _Expression = string.Format("{0}{1}{2}", oOperation.StartTag, oField.Expression, oOperation.EndTag); } QBOperator oOperator = new QBOperator(oOperatorType); _ExpressionOpearator = oOperator; }