/// <summary> /// Add StaticFilesModule to WebServer. /// </summary> /// <param name="webserver">The webserver instance.</param> /// <returns>An instance of a web module.</returns> /// <exception cref="System.ArgumentNullException">webserver.</exception> public static WebServer WithLocalSession(this WebServer webserver) { if (webserver == null) { throw new ArgumentNullException(nameof(webserver)); } webserver.RegisterModule(new LocalSessionModule()); return(webserver); }
/// <summary> /// Add a Module to WebServer. /// </summary> /// <param name="webserver">The webserver instance.</param> /// <param cref="IWebModule" name="module">The Module to register to WebServer.</param> /// <returns>An instance of webserver.</returns> /// <exception cref="System.ArgumentNullException">webserver.</exception> public static WebServer WithModule <T>(this WebServer webserver, T module) where T : class, IWebModule { if (webserver == null) { throw new ArgumentNullException(nameof(webserver)); } webserver.RegisterModule(module); return(webserver); }
/// <summary> /// Add WebSocketsModule to WebServer. /// </summary> /// <param name="webserver">The webserver instance.</param> /// <param name="assembly">The assembly to load Web Sockets from. Leave null to avoid autoloading.</param> /// <returns>An instance of webserver.</returns> /// <exception cref="System.ArgumentNullException">webserver.</exception> public static WebServer WithWebSocket(this WebServer webserver, Assembly assembly = null) { if (webserver == null) { throw new ArgumentNullException(nameof(webserver)); } webserver.RegisterModule(new WebSocketsModule()); return(assembly != null?webserver.LoadWebSockets(assembly) : webserver); }
/// <summary> /// Enables CORS in the WebServer. /// </summary> /// <param name="webserver">The webserver instance.</param> /// <param name="origins">The valid origins, default all.</param> /// <param name="headers">The valid headers, default all.</param> /// <param name="methods">The valid method, default all.</param> /// <returns>An instance of the tiny web server used to handle request.</returns> /// <exception cref="ArgumentNullException">webserver.</exception> public static WebServer EnableCors(this WebServer webserver, string origins = Strings.CorsWildcard, string headers = Strings.CorsWildcard, string methods = Strings.CorsWildcard) { if (webserver == null) { throw new ArgumentNullException(nameof(webserver)); } webserver.RegisterModule(new CorsModule(origins, headers, methods)); return(webserver); }
/// <summary> /// Add the StaticFilesModule with multiple paths. /// </summary> /// <param name="webserver">The webserver.</param> /// <param name="virtualPaths">The virtual paths.</param> /// <param name="defaultDocument">The default document.</param> /// <returns>An instance of a web module.</returns> /// <exception cref="System.ArgumentNullException">webserver.</exception> public static WebServer WithVirtualPaths(this WebServer webserver, Dictionary <string, string> virtualPaths, string defaultDocument = StaticFilesModule.DefaultDocumentName) { if (webserver == null) { throw new ArgumentNullException(nameof(webserver)); } webserver.RegisterModule(new StaticFilesModule(virtualPaths) { DefaultDocument = defaultDocument }); return(webserver); }
/// <summary> /// Add the StaticFilesModule to the specified WebServer. /// </summary> /// <param name="webserver">The webserver instance.</param> /// <param name="rootPath">The static folder path.</param> /// <param name="defaultDocument">The default document name.</param> /// <param name="useDirectoryBrowser">if set to <c>true</c> [use directory browser].</param> /// <returns> /// An instance of webserver. /// </returns> /// <exception cref="ArgumentNullException">webserver.</exception> public static WebServer WithStaticFolderAt(this WebServer webserver, string rootPath, string defaultDocument = StaticFilesModule.DefaultDocumentName, bool useDirectoryBrowser = false) { if (webserver == null) { throw new ArgumentNullException(nameof(webserver)); } webserver.RegisterModule(new StaticFilesModule(rootPath, useDirectoryBrowser) { DefaultDocument = defaultDocument }); return(webserver); }
/// <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); }