public override System.Linq.Expressions.Expression ToLinqExpression(System.Linq.IQueryable queryable, ParameterExpression parameterExpression, string propertyName) { if (queryable == null) { throw new ArgumentNullException("queryable"); } if (parameterExpression == null) { throw new ArgumentNullException("parameterExpression"); } if (String.IsNullOrEmpty(propertyName)) { if (propertyName == null) { throw new ArgumentNullException("propertyName"); } throw new ArgumentException("PropertyName must not be empty.", "propertyName"); } System.Linq.Expressions.Expression firstFilterLINQExpression = (m_firstFilterCriterion == null) ? null : m_firstFilterCriterion.ToLinqExpression(queryable, parameterExpression, propertyName); System.Linq.Expressions.Expression secondFilterLINQExpression = (m_secondFilterCriterion == null) ? null : m_secondFilterCriterion.ToLinqExpression(queryable, parameterExpression, propertyName); if ((firstFilterLINQExpression != null) && (secondFilterLINQExpression != null)) { return(System.Linq.Expressions.Expression.Or(firstFilterLINQExpression, secondFilterLINQExpression)); } if (firstFilterLINQExpression != null) { return(firstFilterLINQExpression); } // Will return null if both criterion or resulting LINQ expressions are null; return(secondFilterLINQExpression); }
public override System.Linq.Expressions.Expression ToLinqExpression(System.Linq.IQueryable queryable, ParameterExpression parameterExpression, string propertyName) { if (queryable == null) { throw new ArgumentNullException("queryable"); } if (parameterExpression == null) { throw new ArgumentNullException("parameterExpression"); } if (String.IsNullOrEmpty(propertyName)) { if (propertyName == null) { throw new ArgumentNullException("propertyName"); } throw new ArgumentException("PropertyName must not be empty.", "propertyName"); } if (m_filterCriterion == null) { return(null); } Expression expressionToReverse = m_filterCriterion.ToLinqExpression(queryable, parameterExpression, propertyName); if (expressionToReverse == null) { return(null); } return(Expression.Not(expressionToReverse)); }