public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            config.InitializeCustomWebHooks();
            config.InitializeCustomWebHooksSqlStorage();
            config.InitializeCustomWebHooksApis();

            ILogger        logger = config.DependencyResolver.GetLogger();
            IWebHookStore  store  = config.DependencyResolver.GetStore();
            IWebHookSender sender = new ScionWebHookSender(logger);

            IWebHookManager manager = new ScionWebhookManager(store, sender, logger);

            ContainerBuilder builder = new ContainerBuilder();

            builder.RegisterInstance(manager).As <IWebHookManager>().SingleInstance();
            builder.RegisterInstance(sender).As <IWebHookSender>().SingleInstance();

            Assembly currentAssembly = Assembly.GetExecutingAssembly();

            builder.RegisterApiControllers(currentAssembly);
            builder.RegisterControllers(currentAssembly);

            var container = builder.Build();

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
        }
Example #2
0
        public void Configuration(IAppBuilder appBuilder)
        {
            ConfigureAuth0(appBuilder);

            //ConfigureWindowsAuth(appBuilder);

            var builder = new ContainerBuilder();
            var config  = new HttpConfiguration();

            config.Formatters.JsonFormatter.SupportedMediaTypes
            .Add(new MediaTypeHeaderValue("text/html"));

            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            config.InitializeCustomWebHooks();
            config.InitializeCustomWebHooksSqlStorage();
            config.InitializeCustomWebHooksApis();


            Collection <TimeSpan> retries = new Collection <TimeSpan> {
                TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(20)
            };


            ILogger         logger  = config.DependencyResolver.GetLogger();
            IWebHookStore   store   = config.DependencyResolver.GetStore();
            IWebHookSender  sender  = new ScionWebHookSender(logger, store, retries, null);
            IWebHookManager manager = new ScionWebhookManager(store, sender, logger);

            builder.RegisterInstance(manager).As <IWebHookManager>().SingleInstance();
            builder.RegisterInstance(sender).As <IWebHookSender>().SingleInstance();

            builder.RegisterApiControllers(Assembly.GetExecutingAssembly()).InstancePerRequest();

            var container = builder.Build();

            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);

            config.EnsureInitialized();

            appBuilder.UseAutofacMiddleware(container);
            appBuilder.UseAutofacWebApi(config);

            appBuilder.UseCors(CorsOptions.AllowAll);
            appBuilder.UseWebApi(config);
        }