/// <inheritdoc /> public Expression GenerateComparisonExpression(Expression left, LinqExpressionMethodOperator expressionMethodOperator, Expression right) { switch (expressionMethodOperator) { case LinqExpressionMethodOperator.StringContains: MethodInfo stringContainsMethod = typeof(string).GetMethod("Contains", new[] { typeof(string) }); return(Expression.Call(left, stringContainsMethod !, right)); case LinqExpressionMethodOperator.IntContains: MethodInfo intContainsMethod = typeof(string).GetMethod("Contains", new[] { typeof(int) }); return(Expression.Call(left, intContainsMethod !, right)); } return(null); }
/// <inheritdoc /> public Expression GenerateComparisonExpression(ParameterExpression parameter, string property, LinqExpressionMethodOperator expressionMethodOperator, object value, Type valueType) { Expression propertyExpression = GenerateMemberExpression(parameter, property); // Property ConstantExpression valueExpression = Expression.Constant(value, valueType); // Value return(GenerateComparisonExpression(propertyExpression, expressionMethodOperator, valueExpression)); }