public static void EnsureDatabaseCreated(IConfiguration configuration) { var connectionStringFactory = new SqliteConnectionStringFactory(configuration["Databases:Folder"]); FinancePlanner.Data.Initializations.DbInitializer .Initialize(() => new FinancePlanner.Data.FinancialPlannerContext(connectionStringFactory), @"..\..\Configs\"); ActivityPlanner.Data.Initializations.DbInitializer .Initialize(() => new ActivityPlanner.Data.ActivityPlannerContext(connectionStringFactory)); }
public IDispatcher ConfigureDispatcher() { var container = new Container(); var dispatcher = new LoggableDispatcher( Logging.LoggerFactory.CreateLogger <IDispatcher>(), new Dispatcher(new DispatcherContainer(container))); var queueDispatcher = new SimpleQueueDispatcher(dispatcher); var connectionStringFactory = new SqliteConnectionStringFactory(Configuration["Databases:Folder"]); container.RegisterSingleton <Func <FinancialPlannerContext> >(() => new FinancialPlannerContext(connectionStringFactory)); container.RegisterSingleton <Func <ActivityPlannerContext> >(() => new ActivityPlannerContext(connectionStringFactory)); container.RegisterSingleton(GetInitializer()); container.Register <ICacheStorage, CacheStorage>(); container.Register <IDataStorage <FinancialJournalEntry>, FinancialJournalEntryStorage>(); container.Register <IDataStorage <Taxon>, TaxonStorage>(); container.Register <IDataStorage <Group>, GroupDataStorage>(); container.Register <IDataStorage <Activity>, ActivityDataStorage>(); container.Register <IDataStorage <ActivityOccurrence>, ActivityOccurrenceDataStorage>(); var assembly = new[] { typeof(FinancialPlannerContext).Assembly, typeof(FinancialJournalEntry).Assembly, typeof(ActivityPlannerContext).Assembly, typeof(Activity).Assembly, typeof(CalendarSynchronizer).Assembly }; container.RegisterCollection(typeof(IPipelinePreProcessor <>), assembly); container.RegisterCollection(typeof(IPipelinePostProcessor <,>), assembly); container.Register(typeof(IQueryHandler <,>), assembly); container.Register(typeof(ICommandHandler <,>), assembly); container.RegisterCollection(typeof(INotificationHandler <>), assembly); container.RegisterSingleton <IDispatcher>(dispatcher); container.RegisterSingleton <IQueryDispatcher>(dispatcher); container.RegisterSingleton <IQueueDispatcher>(queueDispatcher); container.Verify(); return(dispatcher); }