public void Install(IWindsorContainer container, IConfigurationStore store) { ILogger baseLogger = container.Resolve <ILogger>(); var log = new NEventStoreLog4NetLogger(baseLogger); //Important, register BlobStoreByFormat as first IBlobStore interface because it is the default. container.Register( Component .For <IBlobStore>() .ImplementedBy <BlobStoreByFormat>() .DependsOn( Dependency.OnComponent("originals", "originals.filestore"), Dependency.OnComponent("artifacts", "artifacts.filestore") ), Component .For <ILog>() .Instance(log) ); switch (_config.StorageType) { case StorageType.GridFs: RegisterGridFs(container); break; case StorageType.FileSystem: RegisterFileSystemFsFs(container); break; } }
public void Install(IWindsorContainer container, IConfigurationStore store) { ILogger baseLogger = container.Resolve<ILogger>(); var log = new NEventStoreLog4NetLogger(baseLogger); container.Register( Component .For<IBlobStore>() .ImplementedBy<BlobStoreByFormat>() .DependsOn( Dependency.OnComponent("originals", "originals.filestore"), Dependency.OnComponent("artifacts", "artifacts.filestore") ), Component .For<IBlobStore>() .ImplementedBy<GridFsBlobStore>() .Named("originals.filestore") .DependsOn(Dependency.OnComponent(typeof(MongoDatabase), "originals.db.legacy")), Component .For<IBlobStore>() .ImplementedBy<GridFsBlobStore>() .Named("artifacts.filestore") .DependsOn(Dependency.OnComponent(typeof(MongoDatabase), "artifacts.db.legacy")), Component .For<IMongoDatabase>() .Named("originals.db") .UsingFactoryMethod(k => _tenant.Get<IMongoDatabase>("originals.db")), Component .For<IMongoDatabase>() .Named("artifacts.db") .UsingFactoryMethod(k => _tenant.Get<IMongoDatabase>("artifacts.db")), Component .For<MongoDatabase>() .Named("originals.db.legacy") .UsingFactoryMethod(k => _tenant.Get<MongoDatabase>("originals.db.legacy")), Component .For<MongoDatabase>() .Named("artifacts.db.legacy") .UsingFactoryMethod(k => _tenant.Get<MongoDatabase>("artifacts.db.legacy")), Component .For<ILog>() .Instance(log) ); }