public void ConfigureKernel() { var action = Substitute.For <Action <IKernelConfigurationContext> >(); revoConfiguration.ConfigureKernel(action); kernelConfigurationSection.KernelActions.Should().Contain(action); }
public static IRevoConfiguration UseEFCoreDataAccess(this IRevoConfiguration configuration, Action <DbContextOptionsBuilder> configurer, bool?useAsPrimaryRepository = true, Action <EFCoreDataAccessConfigurationSection> advancedAction = null) { var section = configuration.GetSection <EFCoreDataAccessConfigurationSection>(); section.IsActive = true; section.UseAsPrimaryRepository = useAsPrimaryRepository ?? section.UseAsPrimaryRepository; section.Configurer = configurer ?? section.Configurer; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { if (section.IsActive) { c.LoadModule(new EFCoreDataAccessModule(section)); if (section.EnableMigrationProvider) { c.LoadModule(new EFCoreMigrationsModule(section)); } } }); return(configuration); }
public static IRevoConfiguration ConfigureInfrastructure(this IRevoConfiguration configuration, Action <InfrastructureConfigurationSection> action = null) { configuration.ConfigureCore(); configuration.UseInMemoryJobs(isActive: null); // activate only if not previously disabled var section = configuration.GetSection <InfrastructureConfigurationSection>(); action?.Invoke(section); configuration.ConfigureKernel(c => { if (!c.Kernel.GetBindings(typeof(IAsyncEventPipelineConfiguration)).Any()) { c.Kernel.Bind <IAsyncEventPipelineConfiguration>().ToConstant(section.AsyncEventPipeline); } if (!c.Kernel.GetBindings(typeof(DatabaseMigrationsConfiguration)).Any()) { c.Kernel.Bind <DatabaseMigrationsConfiguration>().ToConstant(section.DatabaseMigrations); } c.LoadModule(new DatabaseMigrationsModule(section.DatabaseMigrations)); if (section.EnableSagas) { c.LoadModule <SagasModule>(); } }); return(configuration); }
public static IRevoConfiguration ConfigureInfrastructure(this IRevoConfiguration configuration, AsyncEventPipelineConfiguration asyncEventPipelineConfiguration = null, Action <InfrastructureConfigurationSection> advancedAction = null) { configuration.ConfigureCore(); var section = configuration.GetSection <InfrastructureConfigurationSection>(); section.AsyncEventPipeline = asyncEventPipelineConfiguration ?? section.AsyncEventPipeline; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { if (!c.Kernel.GetBindings(typeof(IAsyncEventPipelineConfiguration)).Any()) { c.Kernel.Bind <IAsyncEventPipelineConfiguration>().ToConstant(section.AsyncEventPipeline); } if (section.EnableSagas) { c.LoadModule <SagasModule>(); } }); return(configuration); }
public static IRevoConfiguration UseEF6Repositories(this IRevoConfiguration configuration, bool useCrudAggregateStore = true, bool useEventSourcedAggregateStore = true, Action <EF6InfrastructureConfigurationSection> advancedAction = null) { var section = configuration.GetSection <EF6InfrastructureConfigurationSection>(); section.UseCrudAggregateStore = useCrudAggregateStore; section.UseEventSourcedAggregateStore = useEventSourcedAggregateStore; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { var dataAccessSection = configuration.GetSection <EF6DataAccessConfigurationSection>(); if (!dataAccessSection.IsActive || !dataAccessSection.UseAsPrimaryRepository) { throw new InvalidOperationException("EF6 data access must be enabled and configured as primary data repository in order to use EF6 aggregate stores."); // TODO ensure EF6 aggregate stores get injected the correct EF6 repository/event store (in case there are more registered) // to make it possible to use it even when not configured as primary data access } c.LoadModule(new EF6RepositoriesModule(section)); }); return(configuration); }
public static IRevoConfiguration ConfigureCore(this IRevoConfiguration configuration, Action <CoreConfigurationSection> advancedAction = null) { var section = configuration.GetSection <CoreConfigurationSection>(); advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { c.LoadModule(new CoreModule(section)); }); return(configuration); }
public static IRevoConfiguration UseInMemoryJobs(this IRevoConfiguration configuration, bool?isActive = true, Action <InMemoryJobsConfigurationSection> advancedAction = null) { var section = configuration.GetSection <InMemoryJobsConfigurationSection>(); section.IsActive = isActive ?? (section.IsActive ?? true); advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { c.LoadModule(new InMemoryJobsModule(section.SchedulerConfiguration, section.IsActive ?? true)); }); return(configuration); }
public static IRevoConfiguration ConfigureEFCoreAspNetCoreOData(this IRevoConfiguration configuration, Action <EFCoreAspNetCoreODataConfigurationSection> action = null) { var section = configuration.GetSection <EFCoreAspNetCoreODataConfigurationSection>(); action?.Invoke(section); configuration.ConfigureKernel(c => { if (!c.Kernel.GetBindings(typeof(EFCoreAspNetCoreODataConfigurationSection)).Any()) { c.Kernel.Bind <EFCoreAspNetCoreODataConfigurationSection>() .ToConstant(section); } }); return(configuration); }
public static IRevoConfiguration UseEFCoreRepositories(this IRevoConfiguration configuration, bool useCrudAggregateStore = true, bool useEventSourcedAggregateStore = true, Action <EFCoreInfrastructureConfigurationSection> advancedAction = null) { var section = configuration.GetSection <EFCoreInfrastructureConfigurationSection>(); section.UseCrudAggregateStore = useCrudAggregateStore; section.UseEventSourcedAggregateStore = useEventSourcedAggregateStore; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { c.LoadModule(new EFCoreRepositoriesModule(section)); }); return(configuration); }
public static IRevoConfiguration AddAutoMapperExtension(this IRevoConfiguration configuration, Action <AutoMapperConfigurationSection> advancedAction = null) { var section = configuration.GetSection <AutoMapperConfigurationSection>(); section.AutoDiscoverProfiles = true; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { if (section.AutoDiscoverProfiles) { c.LoadModule(new AutoMapperModule()); } }); return(configuration); }
public static IRevoConfiguration UseEFCoreSagas(this IRevoConfiguration configuration, Action <EFCoreInfrastructureConfigurationSection> advancedAction = null) { var section = configuration.GetSection <EFCoreInfrastructureConfigurationSection>(); section.UseSagas = true; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { if (section.UseSagas) { c.LoadModule <EFCoreSagasModule>(); } }); return(configuration); }
public static IRevoConfiguration AddNotificationsExtension(this IRevoConfiguration configuration, Action <NotificationsConfigurationSection> advancedAction = null) { var section = configuration.GetSection <NotificationsConfigurationSection>(); section.IsActive = true; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { if (section.IsActive) { c.LoadModule(new NotificationsModule()); } }); return(configuration); }
public static IRevoConfiguration ConfigureCore(this IRevoConfiguration configuration, Action <CoreConfigurationSection> advancedAction = null) { var section = configuration.GetSection <CoreConfigurationSection>(); advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { c.LoadModule(new CoreModule(section)); c.LoadModule(new CommandsModule(section.Commands)); if (section.Security.UseNullSecurityModule) { c.LoadModule(new NullCoreSecurityModule()); } }); return(configuration); }
public static IRevoConfiguration AddHistoryExtension(this IRevoConfiguration configuration, bool?isChangeTrackingActive = true, Action <HistoryConfigurationSection> advancedAction = null) { var section = configuration.GetSection <HistoryConfigurationSection>(); section.IsChangeTrackingActive = isChangeTrackingActive ?? section.IsChangeTrackingActive; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { if (section.IsChangeTrackingActive) { c.LoadModule(new HistoryModule()); } }); return(configuration); }
public static IRevoConfiguration ConfigureApnsNotifications(this IRevoConfiguration configuration, IApnsAppConfiguration[] apnsApps = null, Action <ApnsNotificationsConfigurationSection> advancedAction = null) { var section = configuration.GetSection <ApnsNotificationsConfigurationSection>(); section.AppConfigurations = apnsApps ?? new IApnsAppConfiguration[0]; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { if (section.AppConfigurations.Count > 0) { c.LoadModule(new ApnsNotificationsModule(section.AppConfigurations)); } }); return(configuration); }
public static IRevoConfiguration ConfigureMailNotifications(this IRevoConfiguration configuration, Func <IMailNotificationSender> mailSenderFactory, Action <MailNotificationsConfigurationSection> advancedAction = null) { var section = configuration.GetSection <MailNotificationsConfigurationSection>(); section.MailSenderFactoryFunc = mailSenderFactory; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { if (section.MailSenderFactoryFunc != null) { c.LoadModule(new MailNotificationsModule(section.MailSenderFactoryFunc)); } }); return(configuration); }
public static IRevoConfiguration UseRebus(this IRevoConfiguration configuration, RebusConnectionConfiguration connection = null, Action <RebusConfigurationSection> advancedAction = null) { var section = configuration.GetSection <RebusConfigurationSection>(); section.IsActive = true; section.Connection = connection ?? section.Connection; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { if (section.IsActive) { c.LoadModule(new RebusModule(section.Connection)); } }); return(configuration); }
public static IRevoConfiguration UseEasyNetQ(this IRevoConfiguration configuration, bool?isActive = true, EasyNetQConnectionConfiguration connection = null, Action <EasyNetQSubscriptionsConfiguration> subscriptions = null, Action <EasyNetQConfigurationSection> advancedAction = null) { var section = configuration.GetSection <EasyNetQConfigurationSection>(); section.IsActive = isActive ?? section.IsActive; section.Connection = connection ?? section.Connection; subscriptions?.Invoke(section.Subscriptions); advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { c.LoadModule(new EasyNetQModule(section)); }); return(configuration); }
public static IRevoConfiguration UseEFCoreProjections(this IRevoConfiguration configuration, bool autoDiscoverProjectors = true, Action <EFCoreInfrastructureConfigurationSection> advancedAction = null) { var section = configuration.GetSection <EFCoreInfrastructureConfigurationSection>(); section.UseProjections = true; section.AutoDiscoverProjectors = autoDiscoverProjectors; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { if (section.UseProjections) { c.LoadModule(new EFCoreProjectionsModule(section)); } }); return(configuration); }
public static IRevoConfiguration UseAspNetCore(this IRevoConfiguration configuration, Action <AspNetCoreConfigurationSection> advancedAction = null) { var section = configuration.GetSection <AspNetCoreConfigurationSection>(); section.IsActive = true; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { if (section.IsActive) { var hangfireConfigurationSection = configuration.GetSection <HangfireConfigurationSection>(); c.LoadModule(new AspNetCoreModule(hangfireConfigurationSection)); c.LoadModule(new AspNetCoreSecurityModule()); } }); return(configuration); }
public static IRevoConfiguration UseHangfire(this IRevoConfiguration configuration, Func <JobStorage> jobStorage = null, Action <HangfireConfigurationSection> advancedAction = null) { configuration.UseInMemoryJobs(false); var section = configuration.GetSection <HangfireConfigurationSection>(); section.IsActive = true; section.JobStorage = jobStorage ?? section.JobStorage; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { if (section.IsActive) { c.LoadModule(new HangfireModule(section)); } }); return(configuration); }
public static IRevoConfiguration UseRavenProjections(this IRevoConfiguration configuration, bool autoDiscoverProjectors = true, Action <RavenConfigurationSection> advancedAction = null) { configuration.UseRavenDataAccess(null); var section = configuration.GetSection <RavenConfigurationSection>(); section.UseProjections = true; section.AutoDiscoverProjectors = autoDiscoverProjectors; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { if (section.UseProjections) { c.LoadModule(new RavenProjectionsModule(section)); } }); return(configuration); }
public static IRevoConfiguration UseRavenDataAccess(this IRevoConfiguration configuration, RavenConnectionConfiguration connection, bool?useAsPrimaryRepository = true, Action <RavenConfigurationSection> advancedAction = null) { var section = configuration.GetSection <RavenConfigurationSection>(); section.IsActive = true; section.Connection = connection ?? section.Connection; section.UseAsPrimaryRepository = useAsPrimaryRepository ?? section.UseAsPrimaryRepository; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { if (section.IsActive) { c.LoadModule(new RavenModule(section.Connection, section.UseAsPrimaryRepository)); } }); return(configuration); }
public static IRevoConfiguration UseAspNet(this IRevoConfiguration configuration, Action <AspNetConfigurationSection> advancedAction = null) { var section = configuration.GetSection <AspNetConfigurationSection>(); section.IsActive = true; advancedAction?.Invoke(section); configuration.ConfigureKernel(c => { if (section.IsActive) { var hangfireConfigurationSection = configuration.GetSection <HangfireConfigurationSection>(); c.LoadModule(new CorePlatformModule(hangfireConfigurationSection)); c.LoadModule(new SecurityModule()); c.LoadModule(new NullAspNetIdentityModule()); c.LoadModule(new GlobalizationModule()); c.LoadModule(new TemplatesModule()); } }); return(configuration); }