public CompositionRoot() { var settings = new EdgarSettings(); _container = new Container( config => { ConfigureLogger(config, settings); config.For <IHttpDataAgent>().Use <HttpDataAgent>(); config.For <IUtil>().Use <Util>(); config.For <IEdgarApi>().Use <EdgarApi>() .Ctor <string>("connectionString").Is(settings.AiDollarMongo) .Ctor <string>("database").Is(settings.AiDollarDb); config.For <IDbOperation>().Use <MongoDbOperation>() .Ctor <string>("connectionString").Is(settings.AiDollarMongo) .Ctor <string>("database").Is(settings.AiDollarDb); config.For <IService>().Use <EdgarService>() .Ctor <string[]>("ciks").Is(settings.Ciks) .Ctor <string>("edgarUri").Is(settings.EdgarArchiveRoot) .Ctor <string>("outputPath").Is(settings.DataPath) .Ctor <string>("posPage").Is(settings.PosPage); } ); }
protected virtual void ConfigureLogger(ConfigurationExpression config, EdgarSettings settings) { var logger = BackgroundWorkerFactory.Logger ?? new Log4NetLogger(settings.LogPath, settings.LogFilename, settings.LogArchivePath); config.For <ILogger>().Use(logger); config.Policies.FillAllPropertiesOfType <ILogger>(); BackgroundWorkerFactory.Logger = logger; }