Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }