static void CAMLQueryWithSubQuery()
        {
            List<string> status = new List<string>();
            status.Add("Status1");
            status.Add("Status2");

            List<SubQuery> queries = new List<SubQuery>();
            foreach (string sta in status)
            {
                List<FieldQuery> singleQueries = new List<FieldQuery>();

                QBField Statusfield = new QBField("LU_Status", sta, FieldType.Lookup);
                QBField StatusHiddenfield = new QBField("StatusHidden", sta, FieldType.Text);

                FieldQuery sqe1 = new FieldQuery(StatusHiddenfield, OperationType.Neq, OperatorType.And);
                FieldQuery sqe = new FieldQuery(Statusfield, OperationType.Eq, OperatorType.And);

                singleQueries.Add(sqe1);
                singleQueries.Add(sqe);

                SubQuery subQuery = new SubQuery(singleQueries, OperatorType.Or);
                queries.Add(subQuery);
            }

            CAMLQuery oCAMLquery = new CAMLQuery(queries, 47, null);

            Console.Write(oCAMLquery.ViewExpression);
        }
Beispiel #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;
        }
        static void CAMLQueryWithSubQueryAndOrderby()
        {
            List<string> status = new List<string>();
            status.Add("Status1");
            status.Add("Status2");

            List<SubQuery> queries = new List<SubQuery>();
            foreach (string sta in status)
            {
                List<FieldQuery> singleQueries = new List<FieldQuery>();

                QBField Statusfield = new QBField("LU_Status", sta, FieldType.Lookup);
                QBField StatusHiddenfield = new QBField("StatusHidden", sta, FieldType.Text);

                FieldQuery sqe1 = new FieldQuery(StatusHiddenfield, OperationType.Neq, OperatorType.And);
                FieldQuery sqe = new FieldQuery(Statusfield, OperationType.Eq, OperatorType.And);

                singleQueries.Add(sqe1);
                singleQueries.Add(sqe);

                SubQuery subQuery = new SubQuery(singleQueries, OperatorType.Or);
                queries.Add(subQuery);
            }

            QBField domainName = new QBField();
            domainName.Name = "DomainName";
            QBField statusF = new QBField();
            statusF.Name = "LU_Status";

            List<QBOrderBy> allOrderBy = new List<QBOrderBy>();
            allOrderBy.Add(domainName.OrderByExpressionAsc);
            allOrderBy.Add(statusF.OrderByExpressionDesc);

            OrderByQuery orderByQuery = new OrderByQuery(allOrderBy);

            CAMLQuery oCAMLquery = new CAMLQuery(queries, 47, orderByQuery);

            Console.Write(oCAMLquery.ViewExpression);
        }