public WorkerRegistry() { var settings = MomntzConfiguration.GetSettings(); SetLogging(settings); For <ISessionFactory>().Use(new Database().CreateSessionFactory()); For <IProjectionProcessor>().Use <ProjectionProcessor>(); For <ICommandProcessor>().Use <CommandProcessor>(); For <ApplicationSettings>().Use(settings); For <ISession>().HybridHttpOrThreadLocalScoped().Use(() => new Database().CreateSessionFactory().OpenSession()); For <IStorage>().Use <AzureStorage>() .Ctor <string>("cloudUrl") .Is(settings.CloudUrl) .Ctor <string>("cloudAccount") .Is(settings.CloudAccount) .Ctor <string>("cloudKey") .Is(settings.CloudKey); For <IQueue>().Use <AzureQueue>() .Ctor <string>("connectionString") .Is(settings.ServiceBusEndpoint); For <ILog>().Use <Log>(); For <IConfigurationService>().Use <MomntzConfiguration>(); For <ISettings>().Use <Settings>(); }
/// <summary> Registers the dependency injection. </summary> private void RegisterDependencyInjection() { var settings = MomntzConfiguration.GetSettings(); SetLogging(settings); ObjectFactory.Initialize(x => x.Scan(s => { x.AddRegistry <MomntzRegistry>(); x.For <IDatabase>().Use(new MsSqlDatabase()); x.For <ApplicationSettings>().Use(settings); x.For <ICrypto>().Use <Crypto>(); x.For <ILog>().Use <Log>(); x.For <IConfigurationService>().Use <MomntzConfiguration>(); x.For <ISessionFactory>().Singleton().Use(Database.CreateSessionFactory); x.For <NHibernate.ISession>().HttpContextScoped().Use(r => r.GetInstance <ISessionFactory>().OpenSession()); x.For <IStorage>().Use <AzureStorage>() .Ctor <string>("cloudUrl") .Is(settings.CloudUrl) .Ctor <string>("cloudAccount") .Is(settings.CloudAccount) .Ctor <string>("cloudKey") .Is(settings.CloudKey); x.For <IQueue>().Use <AzureQueue>() .Ctor <string>("connectionString") .Is(settings.ServiceBusEndpoint); s.TheCallingAssembly(); s.WithDefaultConventions(); s.ConnectImplementationsToTypesClosing(typeof(IFormHandler <>)); s.ConnectImplementationsToTypesClosing(typeof(IQueryHandler <,>)); x.For <IInjection>().Use(new StructureMapInjection()); })); ModelBinders.Binders.Add(typeof(NewTag), new NewTagModelBinder()); ModelBinders.Binders.Add(typeof(UsernameAndPassword), new UsernameAndPasswordModelBinder()); ObjectFactory.AssertConfigurationIsValid(); DependencyResolver.SetResolver(new StructureMapDependencyResolver()); ConfigureAutoMapper(); }