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); }
protected override IKernel CreateKernel() { revoConfiguration = CreateRevoConfiguration(); var kernel = new StandardKernel(); loadedAssemblies.Clear(); try { kernel.Bind <Func <IKernel> >().ToMethod(ctx => () => kernel); kernel.Bind <StandardKernel>().ToMethod(ctx => kernel as StandardKernel); GlobalConfiguration.Configuration.UseNinjectActivator(kernel); LocalConfiguration.Current = new WebConfiguration(); NinjectBindingExtensions.Current = new AspNetNinjectBindingExtension(); kernelBootstrapper = new KernelBootstrapper(kernel, revoConfiguration); kernelBootstrapper.Configure(); var domainAssemblies = GetCurrentDomainAssemblies(); kernelBootstrapper.LoadAssemblies(domainAssemblies); loadedAssemblies.AddRange(domainAssemblies); return(kernel); } catch { kernel.Dispose(); throw; } }
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 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 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 void Register(HttpConfiguration config, IRevoConfiguration revoConfiguration) { var aspNetConfig = revoConfiguration.GetSection <AspNetConfigurationSection>(); if (aspNetConfig.UseODataExtensions) { config.Filters.Add(new ODataActionFilterAttribute()); //also applies the OData filters (instead of a global AddODataQueryFilter(...) } }
public static IRevoConfiguration UseAllEFCoreInfrastructure(this IRevoConfiguration configuration, Action <EFCoreInfrastructureConfigurationSection> advancedAction = null) { return(configuration .UseEFCoreDataAccess(null) .UseEFCoreRepositories() .UseEFCoreAsyncEvents() .UseEFCoreEventStore() .UseEFCoreProjections() .UseEFCoreSagas()); }
public static IRevoConfiguration OverrideModuleLoading(this IRevoConfiguration configuration, Type moduleType, bool isLoaded, Action <KernelConfigurationSection> advancedAction = null) { var section = configuration.GetSection <KernelConfigurationSection>(); section.OverrideModuleLoading(moduleType, isLoaded); advancedAction?.Invoke(section); return(configuration); }
public static IRevoConfiguration ConfigureKernel(this IRevoConfiguration configuration, Action <IKernelConfigurationContext> configureAction, Action <KernelConfigurationSection> advancedAction = null) { var section = configuration.GetSection <KernelConfigurationSection>(); section.AddAction(configureAction); advancedAction?.Invoke(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 KernelBootstrapperTests() { kernel = Substitute.For <IKernel>(); kernel.WhenForAnyArgs(x => x.Load((IEnumerable <INinjectModule>)null)).Do(ci => loadedModules.AddRange(ci.ArgAt <IEnumerable <INinjectModule> >(0))); kernel.CreateRequest(null, null, null, false, false).ReturnsForAnyArgs(ci => { var request = Substitute.For <IRequest>(); request.Service.Returns(ci.ArgAt <Type>(0)); return(request); }); revoConfiguration = Substitute.For <IRevoConfiguration>(); revoConfiguration.GetSection <KernelConfigurationSection>().Returns(kernelConfigurationSection); sut = new KernelBootstrapper(kernel, revoConfiguration); }
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 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 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 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 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 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 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 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 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 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 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 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 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); }
public static IRevoConfiguration OverrideModuleLoading <TModule>(this IRevoConfiguration configuration, bool isLoaded, Action <KernelConfigurationSection> advancedAction = null) where TModule : INinjectModule { return(OverrideModuleLoading(configuration, typeof(TModule), isLoaded, advancedAction)); }