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