Remotion.Linq.SqlBackend.SqlPreparation.MethodCallTransformers.UpperMethodCallTransformer.Transform C# (CSharp) Method

Transform() public method

public Transform ( MethodCallExpression methodCallExpression ) : Expression
methodCallExpression System.Linq.Expressions.MethodCallExpression
return System.Linq.Expressions.Expression
    public Expression Transform (MethodCallExpression methodCallExpression)
    {
      ArgumentUtility.CheckNotNull ("methodCallExpression", methodCallExpression);

      MethodCallTransformerUtility.CheckArgumentCount (methodCallExpression, 0);
      MethodCallTransformerUtility.CheckInstanceMethod (methodCallExpression);

      return new SqlFunctionExpression (methodCallExpression.Type, "UPPER", methodCallExpression.Object);
    }
  }

Usage Example

    public void Transform ()
    {
      var method = typeof (string).GetMethod ("ToUpper", new Type[] { });
      var objectExpression = Expression.Constant ("Test");
      var expression = Expression.Call (objectExpression, method);
      var transformer = new UpperMethodCallTransformer();
      var result = transformer.Transform (expression);

      Assert.That (result, Is.InstanceOf (typeof (SqlFunctionExpression)));
      Assert.That (result.Type, Is.EqualTo (typeof (string)));
      Assert.That (((SqlFunctionExpression) result).SqlFunctioName, Is.EqualTo ("UPPER"));
      Assert.That (((SqlFunctionExpression) result).Args[0], Is.EqualTo (objectExpression));
    }
UpperMethodCallTransformer