Beispiel #1
0
        private Expression ExpressionTree(ParameterExpression parm, CMSDataContext Db)
        {
            Expression expr = null;

            if (IsGroup)
            {
                foreach (var clause in Clauses.OrderBy(c => c.ClauseOrder))
                {
                    if (expr == null)
                    {
                        expr = clause.ExpressionTree(parm, Db);
                    }
                    else
                    {
                        var right = clause.ExpressionTree(parm, Db);
                        if (right != null && expr != null)
                        {
                            if (AnyFalseTrue)
                            {
                                expr = Expression.Or(expr, right);
                            }
                            else
                            {
                                expr = Expression.And(expr, right);
                            }
                        }
                    }
                }
                return(expr);
            }
            expr = Compare.Expression(this, parm, Db);
            if (InAllAnyFalse)
            {
                expr = Expression.Not(expr);
            }
            return(expr);
        }