Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        /// <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);
        }
Ejemplo n.º 7
0
        /// <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);
        }
Ejemplo n.º 8
0
        /// <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);
        }
Ejemplo n.º 9
0
        /// <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);
        }
Ejemplo n.º 10
0
        /// <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);
        }