/// <summary> /// Checks that all arguments are SingleValueNodes /// </summary> /// <param name="functionName">The name of the function the arguments are from.</param> /// <param name="argumentNodes">The arguments to validate.</param> /// <returns>Returns the types of the arguments provided.</returns> internal static IEdmTypeReference[] EnsureArgumentsAreSingleValue(string functionName, List <QueryNode> argumentNodes) { DebugUtils.CheckNoExternalCallers(); ExceptionUtils.CheckArgumentNotNull(functionName, "functionCallToken"); ExceptionUtils.CheckArgumentNotNull(argumentNodes, "argumentNodes"); // Right now all functions take a single value for all arguments IEdmTypeReference[] argumentTypes = new IEdmTypeReference[argumentNodes.Count]; for (int i = 0; i < argumentNodes.Count; i++) { SingleValueNode argumentNode = argumentNodes[i] as SingleValueNode; if (argumentNode == null) { throw new ODataException(ODataErrorStrings.MetadataBinder_FunctionArgumentNotSingleValue(functionName)); } argumentTypes[i] = argumentNode.TypeReference; } return(argumentTypes); }