private static void ConfigureCompositionRoot( string connectionString, IExecutionContextAccessor executionContextAccessor, ILogger logger, IEventsBus eventsBus, bool runQuartz = true) { var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterModule(new LoggingModule(logger)); var loggerFactory = new SerilogLoggerFactory(logger); containerBuilder.RegisterModule(new DataAccessModule(connectionString, loggerFactory)); containerBuilder.RegisterModule(new ProcessingModule()); containerBuilder.RegisterModule(new EventsBusModule(eventsBus)); containerBuilder.RegisterModule(new MediatorModule()); containerBuilder.RegisterModule(new AuthenticationModule()); containerBuilder.RegisterModule(new OutboxModule()); if (runQuartz) { containerBuilder.RegisterModule(new QuartzModule()); } containerBuilder.RegisterInstance(executionContextAccessor); _container = containerBuilder.Build(); PaymentsCompositionRoot.SetContainer(_container); RunEventsProjectors(); }
private static void ConfigureCompositionRoot( string connectionString, IExecutionContextAccessor executionContextAccessor, ILogger logger, EmailsConfiguration emailsConfiguration, IEventsBus eventsBus, bool runQuartz = true) { var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterModule(new LoggingModule(logger)); var loggerFactory = new SerilogLoggerFactory(logger); containerBuilder.RegisterModule(new DataAccessModule(connectionString, loggerFactory)); containerBuilder.RegisterModule(new ProcessingModule()); containerBuilder.RegisterModule(new EmailModule(emailsConfiguration)); containerBuilder.RegisterModule(new EventsBusModule(eventsBus)); containerBuilder.RegisterModule(new MediatorModule()); containerBuilder.RegisterModule(new AuthenticationModule()); BiDictionary <string, Type> domainNotificationsMap = new BiDictionary <string, Type>(); domainNotificationsMap.Add("MeetingFeePaidNotification", typeof(MeetingFeePaidNotification)); domainNotificationsMap.Add("MeetingFeePaymentPaidNotification", typeof(MeetingFeePaymentPaidNotification)); domainNotificationsMap.Add("SubscriptionCreatedNotification", typeof(SubscriptionCreatedNotification)); domainNotificationsMap.Add("SubscriptionPaymentPaidNotification", typeof(SubscriptionPaymentPaidNotification)); domainNotificationsMap.Add("SubscriptionRenewalPaymentPaidNotification", typeof(SubscriptionRenewalPaymentPaidNotification)); domainNotificationsMap.Add("SubscriptionRenewedNotification", typeof(SubscriptionRenewedNotification)); containerBuilder.RegisterModule(new OutboxModule(domainNotificationsMap)); if (runQuartz) { containerBuilder.RegisterModule(new QuartzModule()); } containerBuilder.RegisterInstance(executionContextAccessor); _container = containerBuilder.Build(); PaymentsCompositionRoot.SetContainer(_container); RunEventsProjectors(); }