public IEnumerable <MethodInfo> MethodsForOperation(PortalOperation operation) { if (!RegisteredOperations.TryGetValue(operation, out var methods)) { return(null); } return(methods.AsReadOnly()); }
public void RegisterOperation(PortalOperation operation, MethodInfo method) { var returnType = method.ReturnType; if (!(returnType == typeof(void) || returnType == typeof(Task))) { throw new OperationMethodException($"{method.Name} must be void or return Task"); } if (!RegisteredOperations.TryGetValue(operation, out var methodList)) { RegisteredOperations.Add(operation, methodList = new List <MethodInfo>()); } methodList.Add(method); }