/// <summary> /// Add WebApiModule to WebServer. /// </summary> /// <param name="webserver">The webserver instance.</param> /// <param name="assembly">The assembly to load WebApi Controllers from. Leave null to avoid autoloading.</param> /// <param name="responseJsonException">if set to <c>true</c> [response json exception].</param> /// <returns> /// An instance of webserver. /// </returns> /// <exception cref="ArgumentNullException">webserver.</exception> public static IWebServer WithWebApi(this IWebServer webserver, Assembly assembly = null, bool responseJsonException = false) { if (webserver == null) { throw new ArgumentNullException(nameof(webserver)); } webserver.RegisterModule(new WebApiModule()); return(assembly != null?webserver.LoadApiControllers(assembly, responseJsonException) : 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 IWebServer WithWebSocket(this IWebServer webserver, Assembly assembly = null) { if (webserver == null) { throw new ArgumentNullException(nameof(webserver)); } webserver.RegisterModule(new WebSocketsModule()); return(assembly != null?webserver.LoadWebSockets(assembly) : webserver); }
/// <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 IWebServer WithLocalSession(this IWebServer webserver) { if (webserver == null) { throw new ArgumentNullException(nameof(webserver)); } webserver.RegisterModule(new LocalSessionModule()); return(webserver); }
/// <summary> /// Creates an instance of <see cref="ActionModule" /> and adds it to a module container. /// </summary> /// <param name="this">The this.</param> /// <param name="baseUrlPath">The base URL path.</param> /// <param name="verb">The verb.</param> /// <param name="handler">The handler.</param> /// <returns> /// <paramref name="this" /> with a <see cref="ActionModule" /> added. /// </returns> /// <exception cref="ArgumentNullException">webserver</exception> public static IWebServer WithAction(this IWebServer @this, string baseUrlPath, HttpVerbs verb, WebHandler handler) { if (@this == null) { throw new ArgumentNullException(nameof(@this)); } @this.RegisterModule(new ActionModule(baseUrlPath, verb, handler)); return(@this); }
private static IWebServer AddFallbackModule(IWebServer webserver, WebHandler action, Constants.HttpVerbs verb) { if (webserver == null) { throw new ArgumentNullException(nameof(webserver)); } webserver.RegisterModule(new FallbackModule(action, verb)); return(webserver); }
/// <summary> /// Fluent-like method to attach BearerToken. /// </summary> /// <param name="webserver">The webserver.</param> /// <param name="authorizationProvider">The authorization provider.</param> /// <param name="routes">The routes.</param> /// <param name="secretKey">The secret key.</param> /// <returns>The same web server.</returns> public static IWebServer UseBearerToken(this IWebServer webserver, IAuthorizationServerProvider authorizationProvider = null, IEnumerable <string> routes = null, SymmetricSecurityKey secretKey = null) { webserver.RegisterModule( new BearerTokenModule( authorizationProvider ?? new BasicAuthorizationServerProvider(), routes, secretKey)); return(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 IWebServer EnableCors( this IWebServer 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 IWebServer WithVirtualPaths( this IWebServer 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 WebApi Controller to WebServer. /// </summary> /// <typeparam name="T">The type of Web API Controller.</typeparam> /// <param name="webserver">The webserver instance.</param> /// <param name="responseJsonException">if set to <c>true</c> [response json exception].</param> /// <returns> /// An instance of webserver. /// </returns> /// <exception cref="ArgumentNullException">webserver.</exception> public static IWebServer WithWebApiController <T>(this IWebServer webserver, bool responseJsonException = false) where T : WebApiController { if (webserver == null) { throw new ArgumentNullException(nameof(webserver)); } if (webserver.Module <WebApiModule>() == null) { webserver.RegisterModule(new WebApiModule(responseJsonException)); } webserver.Module <WebApiModule>().RegisterController <T>(); 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 IWebServer WithStaticFolderAt( this IWebServer 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); }