public IServiceStackHandler GetNotFoundHandler()
        {
            IServiceStackHandler httpHandler = null;

            CustomErrorHttpHandlers?.TryGetValue(HttpStatusCode.NotFound, out httpHandler);

            return(httpHandler ?? new NotFoundHttpHandler());
        }
        public IServiceStackHandler GetCustomErrorHandler(HttpStatusCode errorStatus)
        {
            IServiceStackHandler httpHandler = null;

            CustomErrorHttpHandlers?.TryGetValue(errorStatus, out httpHandler);

            return(httpHandler);
        }
Beispiel #3
0
        public IServiceStackHandler GetCustomErrorHandler(HttpStatusCode errorStatus)
        {
            IServiceStackHandler httpHandler = null;

            if (CustomErrorHttpHandlers != null)
            {
                CustomErrorHttpHandlers.TryGetValue(errorStatus, out httpHandler);
            }
            return(httpHandler ?? Config.GlobalHtmlErrorHttpHandler);
        }
Beispiel #4
0
        /// <summary>
        /// Application specific configuration
        /// This method should initialize any IoC resources utilized by your web service classes.
        /// </summary>
        /// <param name="container"></param>
        public override void Configure(Container container)
        {
            //Config examples
            //this.Plugins.Add(new PostmanFeature());
            //Plugins.Add(new CorsFeature());

            InitializeAppSettings();

            SetConfig(new HostConfig
            {
                DebugMode = true,
                EmbeddedResourceBaseTypes = { typeof(AppHost), typeof(SharedEmbeddedResources) }
            });

            JsConfig.EmitCamelCaseNames = true;

            Plugins.Add(new ServerEventsFeature());

            SetConfig(new HostConfig
            {
                DebugMode                      = AppSettings.Get("DebugMode", false),
                DefaultContentType             = MimeTypes.Json,
                AddRedirectParamsToQueryString = true,
            });

            CustomErrorHttpHandlers.Remove(HttpStatusCode.Forbidden);

            //Register all Authentication methods you want to enable for this web app.
            Plugins.Add(new AuthFeature(
                            () => new AuthUserSession(),
                            new IAuthProvider[] {
                new TwitterAuthProvider(AppSettings)       //Sign-in with Twitter
            }));

            container.RegisterAutoWiredAs <MemoryChatHistory, IChatHistory>();

            var redisHost = AppSettings.GetString("RedisHost");

            if (redisHost != null)
            {
                container.Register <IRedisClientsManager>(new RedisManagerPool(redisHost));

                container.Register <IServerEvents>(c =>
                                                   new RedisServerEvents(c.Resolve <IRedisClientsManager>()));
                container.Resolve <IServerEvents>().Start();
            }

            // This route is added using Routes.Add and ServiceController.RegisterService due to
            // using ILMerge limiting our AppHost : base() call to one assembly.
            // If two assemblies are used, the base() call searchs the same assembly twice due to the ILMerged result.
            Routes.Add <NativeHostAction>("/nativehost/{Action}");
            ServiceController.RegisterService(typeof(NativeHostService));
        }
Beispiel #5
0
        /// <summary>
        /// Application specific configuration
        /// This method should initialize any IoC resources utilized by your web service classes.
        /// </summary>
        /// <param name="container"></param>
        public override void Configure(Container container)
        {
            //Config examples
            //this.Plugins.Add(new PostmanFeature());
            //Plugins.Add(new CorsFeature());

            JsConfig.EmitCamelCaseNames = true;

            Plugins.Add(new ServerEventsFeature());
            Plugins.Add(new RazorFormat
            {
                LoadFromAssemblies = { typeof(CefResources).Assembly }
            });

            MimeTypes.ExtensionMimeTypes["jsv"] = "text/jsv";

            SetConfig(new HostConfig
            {
                DebugMode                 = AppSettings.Get("DebugMode", false),
                DefaultContentType        = MimeTypes.Json,
                EmbeddedResourceBaseTypes = { typeof(AppHost), typeof(CefResources) }
            });

            CustomErrorHttpHandlers.Remove(HttpStatusCode.Forbidden);

            //Register all Authentication methods you want to enable for this web app.
            Plugins.Add(new AuthFeature(
                            () => new AuthUserSession(),
                            new IAuthProvider[] {
                new TwitterAuthProvider(AppSettings)       //Sign-in with Twitter
            }));

            container.RegisterAutoWiredAs <MemoryChatHistory, IChatHistory>();

            var redisHost = AppSettings.GetString("RedisHost");

            if (redisHost != null)
            {
                container.Register <IRedisClientsManager>(new RedisManagerPool(redisHost));

                container.Register <IServerEvents>(c =>
                                                   new RedisServerEvents(c.Resolve <IRedisClientsManager>()));
                container.Resolve <IServerEvents>().Start();
            }
        }
Beispiel #6
0
        /// <summary>
        /// Application specific configuration
        /// This method should initialize any IoC resources utilized by your web service classes.
        /// </summary>
        /// <param name="container"></param>
        public override void Configure(Container container)
        {
            JsConfig.EmitCamelCaseNames = true;

            Plugins.Add(new ServerEventsFeature());

            InitializeAppSettings();

            Plugins.Add(new RazorFormat {
                LoadFromAssemblies = { typeof(CefResources).Assembly },
            });

            SetConfig(new HostConfig {
                DebugMode                 = AppSettings.Get("DebugMode", false),
                DefaultContentType        = MimeTypes.Json,
                AllowFileExtensions       = { "jsx" },
                EmbeddedResourceBaseTypes = { typeof(AppHost), typeof(CefResources) },
            });

            Routes.Add <NativeHostAction>("/nativehost/{Action}");
            ServiceController.RegisterService(typeof(NativeHostService));

            CustomErrorHttpHandlers.Remove(HttpStatusCode.Forbidden);

            //Register all Authentication methods you want to enable for this web app.
            Plugins.Add(new AuthFeature(
                            () => new AuthUserSession(),
                            new IAuthProvider[] {
                new TwitterAuthProvider(AppSettings)                           //Sign-in with Twitter
            }));

            container.RegisterAutoWiredAs <MemoryChatHistory, IChatHistory>();

            var redisHost = AppSettings.GetString("RedisHost");

            if (redisHost != null)
            {
                container.Register <IRedisClientsManager>(new RedisManagerPool(redisHost));

                container.Register <IServerEvents>(c =>
                                                   new RedisServerEvents(c.Resolve <IRedisClientsManager>()));
                container.Resolve <IServerEvents>().Start();
            }
        }
Beispiel #7
0
        public IServiceStackHandler GetHandlerForErrorStatus(HttpStatusCode errorStatus)
        {
            var httpHandler = GetCustomErrorHandler(errorStatus);

            switch (errorStatus)
            {
            case HttpStatusCode.Forbidden:
                return(httpHandler ?? new ForbiddenHttpHandler());

            case HttpStatusCode.NotFound:
                return(httpHandler ?? new NotFoundHttpHandler());
            }

            if (CustomErrorHttpHandlers != null)
            {
                CustomErrorHttpHandlers.TryGetValue(HttpStatusCode.NotFound, out httpHandler);
            }

            return(httpHandler ?? new NotFoundHttpHandler());
        }