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;
        }
Exemple #2
0
        /// <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;
        }