public bool CanProcess(Expression exp, ISytelineExpressionVisitor visitor) { if (!exp.IsBinaryExpression()) return false; var bin = (BinaryExpression)exp; return ((bin.Left.NodeType == ExpressionType.Constant && ((ConstantExpression)bin.Left).Value == null || bin.Right.NodeType == ExpressionType.Constant && ((ConstantExpression)bin.Right).Value == null)); }
public string ResolveExpression(Expression exp, Func<Expression, string> evaluateNode, Func<ExpressionType, string> evaluateOp, ISytelineExpressionVisitor visitor) { var bin = (BinaryExpression)exp; var openParen = "("; if (bin.NodeType == ExpressionType.NotEqual) openParen = "(NOT "; if (bin.Right.NodeType == ExpressionType.Constant) return openParen + evaluateNode(bin.Left) + " IS NULL) "; return openParen + evaluateNode(bin.Right) + " IS NULL) "; }
public string ResolveExpression(Expression exp, Func<Expression, string> evaluateNode, Func<ExpressionType, string> evaluateOp, ISytelineExpressionVisitor visitor) { var bin = (BinaryExpression)visitor.Visit(exp); var lvalue = evaluateNode(bin.Left); var op = evaluateOp(bin.NodeType); var rvalue = evaluateNode(bin.Right); if (rvalue.Trim() == "NULL" && op.Trim() == "=") op = " IS "; return "(" + lvalue + op + rvalue + ")"; }
public OperatorResolverList(ISytelineExpressionVisitor visitor) { _visitor = visitor; _opResolvers.Add(new GreaterThanResolver()); _opResolvers.Add(new LessThanResolver()); _opResolvers.Add(new EqualsResolver()); _opResolvers.Add(new InequalityResolver()); _opResolvers.Add(new AndResolver()); _opResolvers.Add(new OrResolver()); _opResolvers.Add(new GreaterThanOrEqualResolver()); _opResolvers.Add(new LessThanOrEqualResolver()); }
public ExpressionResolverList(ISytelineExpressionVisitor visitor) { _expressionList.Add(new NullBinaryExpressionResolver()); _expressionList.Add(new BinaryExpressionResolver()); _expressionList.Add(new IsNullOrEmptyCallExpressionResolver()); _expressionList.Add(new ConvertExpressionResolver()); _expressionList.Add(new ConstantExpressionResolver()); _expressionList.Add(new ContainsCallExpressionResolver()); _expressionList.Add(new NegateExpressionResolver()); _expressionList.Add(new ClassValueVariableMemberExpressionResolver()); _expressionList.Add(new PropertyMemberExpressionResolver()); _expressionList.Add(new ParameterMemberExpressionResolver()); _expressionList.Add(new TrimExpressionResolver()); }
public IResolveExpressions GetResolverFor(Expression exp, ISytelineExpressionVisitor visitor) { return _expressionList.Find(e => e.CanProcess(exp,visitor)); }
public string ResolveExpression(Expression exp, Func<Expression, string> evaluateNode, Func<ExpressionType, string> evaluateOp, ISytelineExpressionVisitor visitor) { var c = (ConstantExpression) exp; return string.Format(" {0} ", c.Value.FormatValue()); }
public bool CanProcess(Expression exp, ISytelineExpressionVisitor visitor) { return exp.NodeType == ExpressionType.Constant; }
public string ResolveExpression(Expression exp, Func<Expression, string> evaluateNode, Func<ExpressionType, string> evaluateOp, ISytelineExpressionVisitor visitor) { var member = (MemberExpression)visitor.Visit(exp); return string.Format(" {0} ", get_value(member)); }
public bool CanProcess(Expression exp, ISytelineExpressionVisitor visitor) { if(exp.NodeType == ExpressionType.Call) { var method = (MethodCallExpression) exp; return method.Method.Name == "Contains"; } return false; }
public string ResolveExpression(Expression exp, Func<Expression, string> evaluateNode, Func<ExpressionType, string> evaluateOp, ISytelineExpressionVisitor visitor) { var conv = (UnaryExpression)exp; if (conv.Operand.NodeType == ExpressionType.Call) { var meth = (MethodCallExpression) conv.Operand; return meth.ParseContainsCall(" NOT"); } return ""; }
public bool CanProcess(Expression exp, ISytelineExpressionVisitor visitor) { var node = visitor.Visit(exp); return (node.NodeType == ExpressionType.Not); }
public string ResolveExpression(Expression exp, Func<Expression, string> evaluateNode, Func<ExpressionType, string> evaluateOp, ISytelineExpressionVisitor visitor) { var conv = (UnaryExpression) exp; var mem = (MemberExpression)conv.Operand; return mem.GetValue().FormatValue(); }
public string ResolveExpression(Expression exp, Func<Expression, string> evaluateNode, Func<ExpressionType, string> evaluateOp, ISytelineExpressionVisitor visitor) { return exp.ParseTrimCall(); }
public bool CanProcess(Expression exp, ISytelineExpressionVisitor visitor) { var node = visitor.Visit(exp); if (node.NodeType != ExpressionType.Call) return false; var method = (MethodCallExpression)exp; return (method.Method.Name == "Trim"); }
public bool CanProcess(Expression exp, ISytelineExpressionVisitor visitor) { var node = visitor.Visit(exp); if (node.NodeType == ExpressionType.MemberAccess) { var memberExp = (MemberExpression)node; return memberExp.Expression== null; } return false; }
public string ResolveExpression(Expression exp, Func<Expression, string> evaluateNode, Func<ExpressionType, string> evaluateOp, ISytelineExpressionVisitor visitor) { var member = (MethodCallExpression)visitor.Visit(exp); var argMember = (MemberExpression)member.Arguments[0]; var parm = argMember.GetAttribute(); return string.Format(" IsNull({0}, '') = '' ", parm); }