Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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);
        }