Пример #1
0
        protected virtual Expression Visit(WithExp withExp)
        {
            var        logicOrComExp = withExp.LogicOrComExp;
            Expression exp           = null;

            if (logicOrComExp is LogicExp)
            {
                exp = Visit((LogicExp)logicOrComExp);
            }
            else if (logicOrComExp is ComparrisonExp)
            {
                exp = Visit((ComparrisonExp)logicOrComExp);
            }
            else if (logicOrComExp == null)
            {
                exp = Expression.Constant(true);
            }
            else
            {
                throw new Exception();
            }
            foreach (var execFilter in withExp.ExeFilter)
            {
                var funcMethod = Visit(execFilter);
                exp = Expression.And(exp, funcMethod);
            }
            return(exp);
        }
Пример #2
0
        protected virtual void Visit(WithExp withExp)
        {
            var logicOrComExp = withExp.LogicOrComExp;

            if (logicOrComExp is LogicExp)
            {
                Visit((LogicExp)logicOrComExp);
            }
            else if (logicOrComExp is ComparrisonExp)
            {
                Visit((ComparrisonExp)logicOrComExp);
            }
            else
            {
                throw new Exception();
            }
            foreach (var execFilter in withExp.ExeFilter)
            {
                Visit(execFilter);
            }
        }