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); }
//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); }