/// <summary> /// Add WebApi Controller to WebServer. /// </summary> /// <typeparam name="T">The type of Web API Controller.</typeparam> /// <param name="webserver">The webserver instance.</param> /// <returns>An instance of webserver.</returns> /// <exception cref="ArgumentNullException">webserver.</exception> public static WebServer WithWebApiController <T>(this WebServer webserver) where T : WebApiController, new() { if (webserver == null) { throw new ArgumentNullException(nameof(webserver)); } if (webserver.Module <WebApiModule>() == null) { webserver.RegisterModule(new WebApiModule()); } webserver.Module <WebApiModule>().RegisterController <T>(); return(webserver); }
/// <summary> /// Load all the WebSockets in an assembly. /// </summary> /// <param name="webserver">The webserver instance.</param> /// <param name="assembly"> /// The assembly to load WebSocketsServer types from. Leave null to load from the currently /// executing assembly. /// </param> /// <returns>An instance of webserver.</returns> /// <exception cref="System.ArgumentNullException">webserver.</exception> public static WebServer LoadWebSockets(this WebServer webserver, Assembly assembly = null) { if (webserver == null) { throw new ArgumentNullException(nameof(webserver)); } var types = (assembly ?? Assembly.GetEntryAssembly()).GetTypes(); foreach (var socketServer in types.Where(x => x.GetTypeInfo().BaseType == typeof(WebSocketsServer))) { if (webserver.Module <WebSocketsModule>() == null) { webserver = webserver.WithWebSocket(); } webserver.Module <WebSocketsModule>().RegisterWebSocketsServer(socketServer); $"Registering WebSocket Server '{socketServer.Name}'".Info(); } return(webserver); }
/// <summary> /// Load all the WebApi Controllers in an assembly. /// </summary> /// <param name="webserver">The webserver instance.</param> /// <param name="assembly"> /// The assembly to load WebApi Controllers from. Leave null to load from the currently executing /// assembly. /// </param> /// <returns>An instance of webserver.</returns> /// <exception cref="System.ArgumentNullException">webserver.</exception> public static WebServer LoadApiControllers(this WebServer webserver, Assembly assembly = null) { if (webserver == null) { throw new ArgumentNullException(nameof(webserver)); } var types = (assembly ?? Assembly.GetEntryAssembly()).GetTypes(); var apiControllers = types.Where(x => x.GetTypeInfo().IsClass&& !x.GetTypeInfo().IsAbstract&& x.GetTypeInfo().IsSubclassOf(typeof(WebApiController))).ToArray(); foreach (var apiController in apiControllers) { if (webserver.Module <WebApiModule>() == null) { webserver = webserver.WithWebApi(); } webserver.Module <WebApiModule>().RegisterController(apiController); $"Registering WebAPI Controller '{apiController.Name}'".Debug(); } return(webserver); }