private static OeOperationParameterConfiguration[] GetParameters(MethodInfo methodInfo) { ParameterInfo[] parameterInfos = methodInfo.GetParameters(); var parameters = new OeOperationParameterConfiguration[parameterInfos.Length]; for (int i = 0; i < parameterInfos.Length; i++) { parameters[i] = new OeOperationParameterConfiguration(parameterInfos[i].Name, parameterInfos[i].ParameterType); } return(parameters); }
private static OeOperationParameterConfiguration[] GetBoundParameters(MethodInfo methodInfo, bool isCollection) { ParameterInfo[] parameterInfos = methodInfo.GetParameters(); Type boundParameterType = parameterInfos[0].ParameterType; if (!(boundParameterType.IsGenericType && typeof(Db.OeBoundFunctionParameter).IsAssignableFrom(boundParameterType))) { throw new InvalidOperationException("First parameter in bound function must be OeBoundFunctionParameter<,>"); } var parameters = new OeOperationParameterConfiguration[parameterInfos.Length]; Type entityType = boundParameterType.GetGenericArguments()[0]; Type parameterType = isCollection ? typeof(IEnumerable <>).MakeGenericType(entityType) : entityType; parameters[0] = new OeOperationParameterConfiguration(parameterInfos[0].Name, parameterType); for (int i = 1; i < parameterInfos.Length; i++) { parameters[i] = new OeOperationParameterConfiguration(parameterInfos[i].Name, parameterInfos[i].ParameterType); } return(parameters); }