Пример #1
0
        public static CamlWhere And(this CamlWhere firstWhere, CamlWhere secondWhere)
        {
            if (firstWhere == null)
            {
                throw new ArgumentNullException("firstWhere");
            }
            if (secondWhere == null)
            {
                throw new ArgumentNullException("secondWhere");
            }
            //var logicalJoin = firstWhere.Operator as LogicalJoin;
            //var @where = logicalJoin != null
            //    ? new CamlWhere(logicalJoin.CombineAnd(secondWhere.Operator))
            //    : new CamlWhere(firstWhere.Operator.And(secondWhere.Operator));
            var @where = new CamlWhere(firstWhere.Operator.And(secondWhere.Operator));

            return(where);
        }
Пример #2
0
        //public static CamlWhere Or(this CamlWhere where, params Operator[] operators)
        //{
        //    //if (where == null) throw new ArgumentNullException("where");
        //    operators = operators.Where(op => op != null).ToArray();
        //    if (operators.Length > 0)
        //    {
        //        Operator @operator;
        //        if (where == null)
        //        {
        //            @operator = operators.First();
        //            @operator = operators.Skip(1).Aggregate(@operator, (current, op) => current.Or(op));
        //        }
        //        else
        //        {
        //            @operator = operators.Where(op => op != null)
        //                .Aggregate(@where.Operator, (current, op) => current.Or(op));
        //        }
        //        where = new CamlWhere(@operator);
        //    }
        //    return where;
        //}

        public static CamlWhere Or(this CamlWhere where, params Operator[] operators)
        {
            //if (where == null) throw new ArgumentNullException("where");
            operators = operators.Where(op => op != null).ToArray();
            if (operators.Length > 0)
            {
                Operator @operator;
                if (where == null)
                {
                    @operator = operators.First();
                    @operator = operators.Skip(1).Aggregate(@operator, (current, op) => current.AppendOr(op));
                }
                else
                {
                    @operator = operators.Where(op => op != null)
                                .Aggregate(@where.Operator, (current, op) => current.AppendOr(op));
                }
                where = new CamlWhere(@operator);
            }
            return(where);
        }