public IHttpActionResult PostExecutionRequest([FromUri] string name, [FromBody] FunctionExecutionRequest request) { var result = VxbFacade.ExecuteUserDefinedFunction(name, request); if (result == null) { return(NotFound()); } return(Ok(result)); }
public object ExecuteUserDefinedFunction(string name, FunctionExecutionRequest request) { var function = UserDefinedFuncsRepo.GetFunctionGraph(name); if (function == null) { return(null); } object[] objArgs = new object[request.Arguments.Length]; for (int i = 0; i < request.Arguments.Length; i++) { objArgs[i] = DataTypes.Parse(request.Arguments[i].Value, request.Arguments[i].Type); } var constructor = new ExpressionTreeConstructor(name, function, FunctionsFacade); var expTree = constructor.Construct(); var lambda = expTree.Compile(); var result = lambda.DynamicInvoke(objArgs); return(result); }