Example #1
0
        public void Configuration(IAppBuilder app)
        {
            var builder = new ContainerBuilder();

            GlobalConfiguration.Configure(WebApiConfig.Register);

            var config = GlobalConfiguration.Configuration;
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            builder.RegisterHubs(Assembly.GetExecutingAssembly());
            builder.RegisterWebApiFilterProvider(config);
            builder.RegisterHubs(Assembly.GetExecutingAssembly());
            builder.RegisterInstance(new GameService()).As<IGameService>().SingleInstance();
            var container = builder.Build();
            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
            GlobalHost.DependencyResolver = new AutofacDependencyResolver(container);

            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            var hubConfig = new HubConfiguration();
            hubConfig.Resolver = new AutofacDependencyResolver(container);

            app.UseAutofacMiddleware(container);
            app.MapSignalR();
        }
        public void Register(ContainerBuilder builder)
        {
            builder.RegisterModule<NLogModule>();
            builder.RegisterEventing();
            builder.RegisterApiControllers(ThisAssembly);
            builder.RegisterLifetimeHubManager();
            builder.RegisterHubs(ThisAssembly);
            builder.RegisterType<HomeControlServiceController>();
            builder.RegisterType<ZWaveNotificationService>();

            builder.RegisterAssemblyTypes(typeof(DependencyRegistrar).Assembly)
                .Named<AbstractZWaveNotification>(t => t.Name);

            builder.Register(ctx =>
            {
                HomeControlConfiguration hcCfg = null;
                try
                {
                    hcCfg = (HomeControlConfiguration)ConfigurationManager.GetSection("HomeControl");
                }
                catch (Exception ex)
                {
                    LogManager.GetCurrentClassLogger().Fatal(ex);
                }

                return hcCfg ?? new HomeControlConfiguration();

            }).As<HomeControlConfiguration>();

            builder.Register(ctx => ctx.Resolve<HomeControlConfiguration>().ZWaveConfiguration);
            builder.Register(ctx => ctx.Resolve<HomeControlConfiguration>().WebApi);

            builder.RegisterType<OpenZWaveConfigurator>();
        }
Example #3
0
        public static void Configure()
        {
            var builder = new ContainerBuilder();
            // Register MVC controllers and other stuffs
            builder.RegisterControllers(Assembly.GetExecutingAssembly());
            builder.RegisterHubs(Assembly.GetExecutingAssembly());

            // Register repositories
            builder.RegisterType<UserRepository>().As<IUserRepository>().InstancePerHttpRequest();
            builder.RegisterType<AttachmentRepository>().As<IAttachmentRepository>().InstancePerHttpRequest();
            builder.RegisterType<ActivityRepository>().As<IActivityRepository>().InstancePerHttpRequest();

            // Register other components
            builder.RegisterType<Configuration>().As<IConfiguration>();
            builder.RegisterType<FluentDbMigrator>().As<IDbMigrator>();

            #if DEBUG
            builder.RegisterType<AppDataAttachmentStorage>().As<IAttachmentStorage>();
            #else
            builder.RegisterType<AzureBlobAttachmentStorage>().As<IAttachmentStorage>();
            #endif

            var container = builder.Build();

            DependencyResolver.SetResolver(new Autofac.Integration.Mvc.AutofacDependencyResolver(container));
            GlobalHost.DependencyResolver = new Autofac.Integration.SignalR.AutofacDependencyResolver(container);

            // Run migrations
            var migrator = container.Resolve<IDbMigrator>();
            migrator.Run();
        }
Example #4
0
        public void Configuration(IAppBuilder app)
        {
            ConfigureLogger();

            var builder = new ContainerBuilder();
            builder.RegisterLogger();
            builder.RegisterByAttributes(typeof (Startup).Assembly);
            builder.RegisterAssemblyModules(typeof (Startup).Assembly);
            builder.RegisterHubs(typeof (Startup).Assembly);
            var container = builder.Build();

            // config hubs
            var config = new HubConfiguration();
            config.Resolver = new AutofacDependencyResolver(container);

            app.UseJwtTokenAuthentication(container.Resolve<IssuerSetting>(),
                                          container.Resolve<AudienceSetting>(),
                                          container.Resolve<ClientSecretSetting>(),
                                          container.Resolve<ICurrentUserProvider>());

            app.MapSignalR(config);

            app.UseNancy(new NancyOptions
            {
                Bootstrapper = new NancyBootstrapper(container)
            });
            app.UseStageMarker(PipelineStage.MapHandler);
            app.UseCors(CorsOptions.AllowAll);

            JsonSettings.RetainCasing = false;

            SeedData(container);
        }
Example #5
0
 private void RegisterAutoFac()
 {
     var builder = new ContainerBuilder();
     builder.RegisterHubs(Assembly.GetExecutingAssembly());
     var container = builder.Build();
     var resolver = new AutofacDependencyResolver(container);
     GlobalHost.DependencyResolver = resolver;
 }
 private static IContainer RegisterDependencies()
 {
     var builder = new ContainerBuilder();
     builder.RegisterHubs(Assembly.GetExecutingAssembly());
     builder.Register(c => new AccountNumberUserIdProvider()).AsImplementedInterfaces();
     builder.RegisterModule(new ServiceBusModule(Assembly.GetExecutingAssembly()));
     return builder.Build();
 }
Example #7
0
 /// <summary>
 /// 重写以实现设置SignalR框架的DependencyResolver
 /// </summary>
 /// <param name="assemblies"></param>
 protected override void SetResolver(Assembly[] assemblies)
 {
     ContainerBuilder builder = new ContainerBuilder();
     builder.RegisterHubs(assemblies).AsSelf().PropertiesAutowired();
     builder.Update(Container);
     IDependencyResolver resolver = new global::Autofac.Integration.SignalR.AutofacDependencyResolver(Container);
     GlobalHost.DependencyResolver = resolver;
 }
Example #8
0
        private static void OnStart()
        {
            var builder = new Autofac.ContainerBuilder();

            builder.RegisterHubs(System.Reflection.Assembly.GetAssembly(typeof(FNE.Eventing.EventBroker)));
            builder.RegisterType<NLogLoggingProvider>().AsImplementedInterfaces().InstancePerDependency();

            Microsoft.AspNet.SignalR.GlobalHost.DependencyResolver = new Autofac.Integration.SignalR.AutofacDependencyResolver(builder.Build());
        }
Example #9
0
        private static void OnStart()
        {
            var builder = new Autofac.ContainerBuilder();

            builder.RegisterHubs(System.Reflection.Assembly.GetAssembly(typeof(FNE.Eventing.EventBroker)));
            builder.RegisterType <NLogLoggingProvider>().AsImplementedInterfaces().InstancePerDependency();

            Microsoft.AspNet.SignalR.GlobalHost.DependencyResolver = new Autofac.Integration.SignalR.AutofacDependencyResolver(builder.Build());
        }
Example #10
0
        private static IContainer RegisterServices(ContainerBuilder builder)
        {
            builder.RegisterHubs(Assembly.GetExecutingAssembly());

            builder.RegisterType<ChatEntitiesContext>().As<IEntitiesContext>();
            builder.RegisterGeneric(typeof(EntityRepository<>)).As(typeof(IEntityRepository<>));
            builder.RegisterType<MembershipService>().As<IMembershipService>();

            return builder.Build();
        }
 /// <summary>
 /// 构建服务并设置SignalR平台的Resolver
 /// </summary>
 /// <param name="services">服务映射信息集合</param>
 /// <param name="assemblies">要检索的程序集集合</param>
 protected override IServiceProvider BuildAndSetResolver(IServiceCollection services, Assembly[] assemblies)
 {
     ContainerBuilder builder = new ContainerBuilder();
     builder.RegisterHubs().AsSelf().PropertiesAutowired();
     builder.Populate(services);
     IContainer container = builder.Build();
     IDependencyResolver resolver = new AutofacDependencyResolver(container);
     GlobalHost.DependencyResolver = resolver;
     return resolver.Resolve<IServiceProvider>();
 }
        public static IContainer RegisterDependencies()
        {
            var builder = new ContainerBuilder();

            builder.RegisterType<TestClass>();

            // Register your SignalR hubs.
            builder.RegisterHubs(Assembly.Load("SignalRChat.Web"));

            return builder.Build();
        }
Example #13
0
        public static IContainer Register(IAppBuilder app, HttpConfiguration httpConfigurations)
        {
            var builder = new ContainerBuilder();
            var assembly = Assembly.GetExecutingAssembly();

            // web api controllers
            builder.RegisterApiControllers(assembly);

            // SignalR all hubs
            builder.RegisterHubs(assembly);

            // application related
            builder
                .RegisterType<TraceLogger>()
                .As<ILogger>()
                .SingleInstance();

            builder
                .RegisterType<InMemoryCounter>()
                .As<IDistributedCounter>()
                .SingleInstance();

            builder
                .RegisterType<AzureDocumentDb>()
                .As<IDocumentsService>()
                .SingleInstance()
                .WithParameters(new Parameter[] {
                    new PositionalParameter(0 , Environment.GetEnvironmentVariable("DOCUMENT_DB_ENDPOINT")),
                    new PositionalParameter(1, Environment.GetEnvironmentVariable("DOCUMENT_DB_ACCESS_KEY")),
                    new PositionalParameter(2, Environment.GetEnvironmentVariable("DOCUMENT_DB_NAME") ?? "development")});

            builder
                .RegisterType<AzureTableStorageService>()
                .As<ITableService>()
                .SingleInstance()
                .WithParameter("connectionString", Environment.GetEnvironmentVariable("STORAGE_CONNECTION_STRING") ?? "UseDevelopmentStorage=true");

            builder
                .RegisterType<AzureServiceBusSubscriptionService>()
                .As<ISubscriptionService>()
                .SingleInstance()
                .WithParameter("connectionString", Environment.GetEnvironmentVariable("SERVICEBUS_CONNECTION_STRING"));

            var container = builder.Build();

            // resolving in OWIN middleware
            app.UseAutofacMiddleware(container);

            // web api registration
            httpConfigurations.DependencyResolver = new AutofacWebApiDependencyResolver(container);

            return container;
        }
Example #14
0
        public void Configuration(IAppBuilder application)
        {
            application.SetDefaultSignInAsAuthenticationType(DefaultAuthenticationTypes.ApplicationCookie);
            application.UseCookieAuthentication(new CookieAuthenticationOptions()
            {
                AuthenticationMode = AuthenticationMode.Active,
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath = new PathString("/"),
            });

            var options = new GitHubAuthenticationOptions()
            {
                AuthenticationMode = AuthenticationMode.Active,
                AuthenticationType = "GitHub",
                SignInAsAuthenticationType = application.GetDefaultSignInAsAuthenticationType(),

                ClientId = ConfigurationManager.AppSettings["clientId"],
                ClientSecret = ConfigurationManager.AppSettings["clientSecret"],

                Provider = new GitHubAuthenticationProvider
                {
                    OnAuthenticated = context =>
                    {
                        context.Identity.AddClaim(new Claim("urn:github:avatar_url", context.User["avatar_url"].ToString()));
                        context.Identity.AddClaim(new Claim("urn:github:acess_token", context.AccessToken));

                        return Task.FromResult(0);
                    }
                }
            };

            options.Scope.Clear();

            application.UseGitHubAuthentication(options);

            var builder = new ContainerBuilder();
            builder.RegisterHubs(Assembly.GetExecutingAssembly());
            var container = builder.Build();

            application.Map("/signalr", map =>
             {
                 map.UseCors(CorsOptions.AllowAll);
                 var hubConfiguration = new HubConfiguration()
                 {
                     Resolver = new AutofacDependencyResolver(container)
                 };
                 map.RunSignalR(hubConfiguration);
             }).UseNancy(new NancyOptions()
             {
                 Bootstrapper = new Bootstrapper(container)
             });
        }
Example #15
0
        public static IContainer Create()
        {
            var builder = new ContainerBuilder();

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

            builder.RegisterType<UserInMemoryRepository>().As<IUserRepository>().SingleInstance();
            builder.RegisterType<AzureTableStorageMessageRepository>().As<IMessageRepository>().InstancePerLifetimeScope();
            builder.RegisterType<CloudTableFactory>().As<ICloudTableFactory>().SingleInstance();

            return builder.Build();
        }
Example #16
0
        protected override void Load(ContainerBuilder builder)
        {
            builder.RegisterHubs(Assembly.GetExecutingAssembly());
            builder.RegisterType<ImageCache>().SingleInstance();

            //var messageBus = new MessageBus();
            //builder
            //    .RegisterInstance(messageBus)
            //    .AsSelf();

            //builder
            //    .RegisterType(typeof(TestService))
            //    .AsSelf();
        }
        public static void Bootstrap(Assembly entryAssembly)
        {
            var builder = new ContainerBuilder();

            builder.RegisterControllers(entryAssembly);
            builder.RegisterLifetimeHubManager();
            builder.RegisterHubs(entryAssembly);
            builder.RegisterAssemblyModules(typeof(DependencyInjectionConfiguration).Assembly);
            builder.RegisterAssemblyModules(entryAssembly);

            var container = builder.Build();

            GlobalHost.DependencyResolver = new Autofac.Integration.SignalR.AutofacDependencyResolver(container);
            DependencyResolver.SetResolver(new Autofac.Integration.Mvc.AutofacDependencyResolver(container));
        }
        private void ConfigureIOC()
        {
            var autofacContainerBuilder = new ContainerBuilder();

            var builder = new ContainerBuilder();

            builder.RegisterAssemblyTypes(typeof(IDAO).Assembly)
                .AsImplementedInterfaces().InstancePerDependency();

            builder.RegisterHubs(Assembly.GetExecutingAssembly());

            var container = builder.Build();
            GlobalHost.DependencyResolver = new AutofacDependencyResolver(container);

            _container = autofacContainerBuilder.Build();
        }
Example #19
0
        protected override void Load(ContainerBuilder builder)
        {
            builder.RegisterControllers(Assembly.GetExecutingAssembly());
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());

            // Register the SignalR hubs.
            builder.RegisterHubs(Assembly.GetExecutingAssembly());

            builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly())
                .Where(t => t.Name.EndsWith("Repository", StringComparison.Ordinal))
                .AsImplementedInterfaces();

            builder.RegisterType<FeatureApplicationServices>().AsImplementedInterfaces();
            builder.RegisterType<CommandSender>().As<ICommandSender>();

            var innerBuilder = new ContainerBuilder();
            innerBuilder.RegisterTypes(ThisAssembly.GetTypes().Where(_ => typeof(IHubBroadcasterFor).IsAssignableFrom(_)).ToArray())
                .As<IHubBroadcasterFor>();

            innerBuilder.RegisterTypes(ThisAssembly.GetTypes().Where(_ => typeof(IDatabaseBroadcasterFor).IsAssignableFrom(_)).ToArray())
                .As<IDatabaseBroadcasterFor>();

            innerBuilder.RegisterTypes(ThisAssembly.GetTypes().Where(_ => typeof(IHistoryBroadcasterFor).IsAssignableFrom(_)).ToArray())
                .As<IHistoryBroadcasterFor>();

            IContainer innerContainer = innerBuilder.Build();
            var eventHandlers = new IEventHandler[] {
                new DatabaseEventHandler(innerContainer.Resolve<IEnumerable<IDatabaseBroadcasterFor>>()),
                new HubEventHandler(innerContainer.Resolve<IEnumerable<IHubBroadcasterFor>>()),
                new HistoryEventHandler(innerContainer.Resolve<IEnumerable<IHistoryBroadcasterFor>>())
            };
            var dispatcher = new NEventStoreDispatcher(eventHandlers);

            var nEventStore =
                Wireup.Init()
                    .LogToOutputWindow()
                    .UsingSqlPersistence("FeatureBeeContext")
                    .WithDialect(new MsSqlDialect())
                    .InitializeStorageEngine()
                    // .EnlistInAmbientTransaction()
                    .UsingJsonSerialization()
                    .UsingSynchronousDispatchScheduler()
                    .DispatchTo(new DelegateMessageDispatcher(dispatcher.DispatchCommit))
                    .Build();

            builder.RegisterInstance(nEventStore);
        }
Example #20
0
        public void Configuration(IAppBuilder app)
        {
            var builder = new ContainerBuilder();

            var config = new HubConfiguration();

            builder.RegisterHubs(Assembly.GetExecutingAssembly());

            builder.RegisterType<ChatMessageAzureTableRepository>().SingleInstance().As<IChatMessagePersister>();
            builder.RegisterType<UserAzureTableRepository>().SingleInstance().As<IUserPersister>();

            var container = builder.Build();

            GlobalHost.DependencyResolver = new AutofacDependencyResolver(container);

            app.MapSignalR();
        }
Example #21
0
        private static IContainer RegisterServices(ContainerBuilder builder)
        {
            builder.RegisterHubs(Assembly.GetExecutingAssembly());
            JsonSerializer serializer = JsonSerializer.Create(new JsonSerializerSettings
            {
                DateFormatHandling = DateFormatHandling.IsoDateFormat,
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            });

            // The hub will create a lifetime scope manually in its constructor to resolve the IFoo and IBar services.
            builder.RegisterType<Broadcaster>().As<IBroadcaster>().InstancePerLifetimeScope();
            builder.RegisterType<Foo>().As<IFoo>().InstancePerLifetimeScope();
            builder.RegisterType<Bar>().As<IBar>().InstancePerLifetimeScope();

            builder.Register(c => serializer).As<JsonSerializer>();
            return builder.Build();
        }
Example #22
0
        public void Configuration(IAppBuilder app)
        {
            var httpConfiguration = new HttpConfiguration();

            // Configure Web API Routes:
            // - Enable Attribute Mapping
            // - Enable Default routes at /api.
            httpConfiguration.MapHttpAttributeRoutes();
            httpConfiguration.Routes.MapHttpRoute(
                name: "AlgorithmApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

            var builder = new ContainerBuilder();

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

            var config = new HubConfiguration();

            Bootstrap(builder);

            var container = builder.Build();
            httpConfiguration.DependencyResolver = new AutofacWebApiDependencyResolver(container);
            config.Resolver = new AutofacDependencyResolver(container);

            app.UseAutofacMiddleware(container);
            app.UseAutofacWebApi(httpConfiguration);
            app.UseWebApi(httpConfiguration);

            app.MapSignalR("/signalr", config);

            // Make ./public the default root of the static files in our Web Application.
            app.UseFileServer(new FileServerOptions
            {
                RequestPath = new PathString(string.Empty),
                FileSystem = new PhysicalFileSystem("./public"),
                EnableDirectoryBrowsing = true,
            });

            app.UseStageMarker(PipelineStage.MapHandler);
        }
        protected override void Load(ContainerBuilder builder)
        {
            builder.RegisterHubs(ThisAssembly);

            builder.RegisterGeneric(typeof(HubContext<>))
                .As(typeof(HubContext<>))
                .SingleInstance();

            builder.RegisterAssemblyTypes(ThisAssembly)
                .AssignableTo<Broadcaster>()
                .AsImplementedInterfaces()
                .InstancePerLifetimeScope();

            builder.RegisterAssemblyTypes(ThisAssembly)
                .Where(t => t.IsAssignableTo<HubPipelineModule>())
                .AsSelf()
                .As<HubPipelineModule>()
                .SingleInstance();
        }
Example #24
0
 /// <summary>
 /// 构建服务并设置SignalR平台的Resolver
 /// </summary>
 /// <param name="services">服务映射信息集合</param>
 /// <param name="assemblies">要检索的程序集集合</param>
 protected override IServiceProvider BuildAndSetResolver(IServiceCollection services, Assembly[] assemblies)
 {
     ContainerBuilder builder = new ContainerBuilder();
     builder.RegisterHubs(assemblies).AsSelf().PropertiesAutowired();
     builder.RegisterLifetimeHubManager();
     builder.Populate(services);
     IContainer container = builder.Build();
     IDependencyResolver resolver = new AutofacDependencyResolver(container);
     GlobalHost.DependencyResolver = resolver;
     SignalRIocResolver.LifetimeResolveFunc = type =>
     {
         ILifetimeScope scope = CallContext.LogicalGetData(LifetimeHubManager.LifetimeScopeKey) as ILifetimeScope;
         if (scope == null)
         {
             return null;
         }
         return scope.ResolveOptional(type);
     };
     return resolver.Resolve<IServiceProvider>();
 }
Example #25
0
        private IContainer BuildContainer()
        {
            var builder = new ContainerBuilder();

            builder.RegisterType<SlackWebHookHandler>().As<IWebHookHandler>();

            //Register the MVC controllers
            builder.RegisterControllers(Assembly.GetExecutingAssembly());

            //Register the Web API controllers
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());

            //Register the SignalR hubs
            builder.RegisterHubs(Assembly.GetExecutingAssembly());

            // Get settings from config
            var serviceBusConnectionString = ConfigurationManager.AppSettings["Microsoft.ServiceBus.ConnectionString"];
            var discoQueueName = ConfigurationManager.AppSettings["DiscoTopicName"];
            var discoTriggers = ConfigurationManager.AppSettings["DiscoTriggers"];

            builder.Register(context => new GlobalSettings(serviceBusConnectionString, discoQueueName, discoTriggers)).As<IGlobalSettings>();
            builder.RegisterType<TopicService>().As<ITopicService>();

            //ServiceBus NamespaceManager and MessagingFactory
            builder.RegisterInstance(MessagingFactory.CreateFromConnectionString(serviceBusConnectionString)).As<MessagingFactory>();
            builder.RegisterInstance(NamespaceManager.CreateFromConnectionString(serviceBusConnectionString)).As<NamespaceManager>();
            builder.RegisterType<MessageWrapper>().As<IMessageWrapper>().SingleInstance();

            // Processors
            builder.RegisterType<NotificationProcessor>().As<IProcessor>().SingleInstance();
            builder.RegisterType<DiscoProcessor>().As<IProcessor>().SingleInstance();

            builder.RegisterModule(new QuartzAutofacFactoryModule());
            builder.RegisterModule(new QuartzAutofacJobsModule(typeof(StopDiscoJob).Assembly));


            _container = builder.Build();
            return _container;
        }
Example #26
0
        public static void Register(HttpConfiguration config)
        {
            var builder = new ContainerBuilder();

            builder.RegisterControllers(Assembly.GetExecutingAssembly());
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            builder.RegisterHubs(Assembly.GetExecutingAssembly());

            string domainUser = WebConfigurationManager.AppSettings["domainUser"];
            string password = WebConfigurationManager.AppSettings["pwd"];
            string vmmServerName = WebConfigurationManager.AppSettings["vmmserver"];

            string connectionString = WebConfigurationManager.ConnectionStrings["VMMDBConnection"].ConnectionString;

            builder.Register(p => new PowerShellProvider(domainUser, password, vmmServerName)).As<IProvider<PSCommand>>().InstancePerLifetimeScope();
            builder.Register(p => new DapperProvider(connectionString)).As<IProvider<DapperCommand>>().InstancePerLifetimeScope();

            #if DEBUG
            builder.RegisterType<TestMonitoringService>().As<IMonitoringService>().SingleInstance();
            builder.RegisterType<TestHostService>().As<IHostService>().InstancePerApiRequest();
            //builder.RegisterType<HostService>().As<IHostService>().InstancePerApiRequest();
            //builder.RegisterType<SPMonitoringService>().As<IMonitoringService>().SingleInstance();

            //builder.RegisterType<MonitoringService>().As<IMonitoringService>().SingleInstance();
            #else
            builder.RegisterType<HostService>().As<IHostService>().OnActivating(e => e.Instance.SetServer(vmmServerName)).InstancePerApiRequest();

            builder.RegisterType<SPMonitoringService>().As<IMonitoringService>().SingleInstance();
            #endif
            builder.RegisterType<DefaultRememberService>().As<IRememberService>().SingleInstance();

            builder.RegisterFilterProvider();

            var container = builder.Build();
            DependencyResolver.SetResolver(new Autofac.Integration.Mvc.AutofacDependencyResolver(container));
            GlobalHost.DependencyResolver = new Autofac.Integration.SignalR.AutofacDependencyResolver(container);

            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
        }
        public static IContainer RegisterServices()
        {
            var builder = new ContainerBuilder();
            var currentAssembly = Assembly.GetExecutingAssembly();

            // Register all referenced Autofac modules
            //BuildManager.GetReferencedAssemblies().Cast<Assembly>();
            var assemblies = AppDomain.CurrentDomain
                                      .GetAssemblies()
                                      .Where(asm => asm.FullName.StartsWith("RulesMapper", StringComparison.OrdinalIgnoreCase))
                                      .ToArray();

            builder.RegisterAssemblyModules(assemblies);


            // Register Hubs as Keyed Services since HubContext is non-generic
            builder.Register(c => GlobalHost.ConnectionManager.GetHubContext<EventsHub>())
                .Keyed<IHubContext>("EventsHub");

            // Register MVC Controllers
            builder.RegisterControllers(currentAssembly);

            // Register Web API Controllers
            builder.RegisterApiControllers(currentAssembly);

            // Register SignalR Hubs
            builder.RegisterHubs(currentAssembly);

            builder.RegisterType<AppSettingsConfigurationSource>().As<IConfigurationSource>()
                    .SingleInstance();

            var container = builder.Build();

            DependencyResolver.SetResolver(new Autofac.Integration.Mvc.AutofacDependencyResolver(container));
            GlobalHost.DependencyResolver = new Autofac.Integration.SignalR.AutofacDependencyResolver(container);

            return container;
        }
 protected override void Load(ContainerBuilder builder)
 {
     // Register your SignalR hubs.
     builder.RegisterHubs(_assembliesToScan);
 }
        public void Configuration(IAppBuilder app)
        {
            ContainerBuilder builder = new ContainerBuilder();
            HubConfiguration config = new HubConfiguration();

            //Setup DI for the types in this assembly
            builder.RegisterHubs(typeof(MvcApplication).Assembly);
            builder.RegisterApiControllers(typeof(MvcApplication).Assembly);
            builder.RegisterControllers(typeof(MvcApplication).Assembly);

            //Mvc Filters and exception handling.
            builder.Register(c => new HandleErrorAttribute()).AsExceptionFilterFor<Controller>().InstancePerRequest();
            builder.RegisterFilterProvider();

            string documentDBUrl = ConfigurationManager.AppSettings["DocumentDB:url"];
            string documentDBKey = ConfigurationManager.AppSettings["DocumentDB:key"];

            string mongoDbConnectionString = ConfigurationManager.AppSettings["MongoDB"];

            builder.RegisterType<RosterDocumentContext>().SingleInstance();
            builder.RegisterType<MongoDBDocumentProvider>()
                .As<IDocumentProvider>()
                .WithParameter("connectionString", mongoDbConnectionString);

            //builder.RegisterType<RosterContext>();

            IContainer container = builder.Build();

            //SignalR Resolver
            config.Resolver = new Autofac.Integration.SignalR.AutofacDependencyResolver(container);

            //MVC Resolver
            DependencyResolver.SetResolver(new Autofac.Integration.Mvc.AutofacDependencyResolver(container));

            //WebApi resolver
            GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);

            //WebApi Config
            HttpConfiguration httpConfig = new HttpConfiguration();
            WebApiConfig.RegisterRoutes(httpConfig);
            httpConfig.DependencyResolver = new AutofacWebApiDependencyResolver(container);
            //Setup camel case javascript
            httpConfig.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

            app.UseWebApi(httpConfig);

            //Owin middleware resolver
            app.UseAutofacMiddleware(container);

            //Use Signalr in the application
            app.MapSignalR(config);

            //Setup global dependency resolver for signalr
            GlobalHost.DependencyResolver = config.Resolver;

            MvcApplication.Container = container;

            BusConfiguration busConfig = new BusConfiguration();
            busConfig.UseSerialization<JsonSerializer>();
            busConfig.EndpointName("Roster.Web");
            busConfig.UsePersistence<InMemoryPersistence>();
            MvcApplication.StartableBus = Bus.Create(busConfig);
            MvcApplication.Bus = MvcApplication.StartableBus.Start();
        }
Example #30
0
        static void BuildContainer()
        {
            _fileService = new Drey.Server.Services.FilesytemFileService(PACKAGES_DIR);

            ContainerBuilder cb = new ContainerBuilder();
            cb.RegisterInstance(_fileService);
            cb.RegisterType<Drey.Server.EventBus>().AsImplementedInterfaces().SingleInstance();

            cb.RegisterType<Stores.ReleasesStore>().AsImplementedInterfaces();
            cb.RegisterType<Drey.Server.Services.PackageService>().AsImplementedInterfaces();
            cb.RegisterType<Services.ClientHealthService>().AsImplementedInterfaces();
            cb.RegisterType<Services.GroupMembershipService>().AsImplementedInterfaces();
            cb.RegisterType<Infrastructure.SampleClientRegistry>().AsImplementedInterfaces().SingleInstance();
            cb.RegisterType<Drey.Server.Services.AnonymousNugetApiClaimsValidator>().AsImplementedInterfaces();

            var serverASM = Assembly.LoadFrom(Path.Combine(Environment.CurrentDirectory, "Drey.Server.Hubs.dll"));

            cb.RegisterAssemblyTypes(serverASM)
                .Where(t => t.Name.EndsWith("Director"))
                .AsImplementedInterfaces();

            cb.RegisterHubs(serverASM);

            _container = cb.Build();
        }
Example #31
0
 private void Bootstrap(ContainerBuilder builder)
 {
     builder.RegisterHubs(Assembly.GetExecutingAssembly());
 }