private IServiceProvider CreateAutofacServiceProvider(IServiceCollection services) { var containerBuilder = new ContainerBuilder(); containerBuilder.Populate(services); containerBuilder.RegisterModule(new MeetingsAutofacModule()); containerBuilder.RegisterModule(new AdministrationAutofacModule()); containerBuilder.RegisterModule(new UserAccessAutofacModule()); containerBuilder.RegisterModule(new PaymentsAutofacModule()); var container = containerBuilder.Build(); var httpContextAccessor = container.Resolve <IHttpContextAccessor>(); var executionContextAccessor = new ExecutionContextAccessor(httpContextAccessor); var emailsConfiguration = new EmailsConfiguration(_configuration["EmailsConfiguration:FromEmail"]); MeetingsStartup.Initialize(this._configuration[MeetingsConnectionString], executionContextAccessor, _logger, emailsConfiguration); AdministrationStartup.Initialize(this._configuration[MeetingsConnectionString], executionContextAccessor, _logger); UserAccessStartup.Initialize( this._configuration[MeetingsConnectionString], executionContextAccessor, _logger, emailsConfiguration, this._configuration["Security:TextEncryptionKey"], null); PaymentsStartup.Initialize( this._configuration[MeetingsConnectionString], executionContextAccessor, _logger, null); return(new AutofacServiceProvider(container)); }
private static void ConfigureCompositionRoot( string connectionString, IExecutionContextAccessor executionContextAccessor, ILogger logger, EmailsConfiguration emailsConfiguration, string textEncryptionKey, IEventsBus eventsBus, IEmailSender emailSender, bool runQuartz = true) { var builder = new ContainerBuilder(); builder.RegisterModule(new LoggingModule(logger.ForContext("Module", "Phrases"))); var loggerFactory = new Serilog.Extensions.Logging.SerilogLoggerFactory(logger); builder.RegisterModule(new DataAccessModule(connectionString, loggerFactory)); builder.RegisterModule(new DomainModule()); builder.RegisterModule(new ProcessingModule()); builder.RegisterModule(new EventsBusModule(eventsBus)); builder.RegisterModule(new MediatorModule()); builder.RegisterModule(new OutboxModule()); builder.RegisterModule(new EmailModule(emailsConfiguration, emailSender)); builder.RegisterModule(new QuartzModule()); builder.RegisterInstance(executionContextAccessor); _container = builder.Build(); PhrasesCompositionRoot.SetContainer(_container); }
public EmailModule( EmailsConfiguration configuration, IEmailSender emailSender) { _configuration = configuration; _emailSender = emailSender; }
public async Task BeforeEachTest() { const string connectionStringEnvironmentVariable = "ASPNETCORE_MyMeetings_IntegrationTests_ConnectionString"; ConnectionString = Environment.GetEnvironmentVariable(connectionStringEnvironmentVariable, EnvironmentVariableTarget.Machine); if (ConnectionString == null) { throw new ApplicationException( $"Define connection string to integration tests database using environment variable: {connectionStringEnvironmentVariable}"); } using (var sqlConnection = new SqlConnection(ConnectionString)) { await ClearDatabase(sqlConnection); } Logger = Substitute.For <ILogger>(); EmailSender = Substitute.For <IEmailSender>(); EmailsConfiguration = new EmailsConfiguration("*****@*****.**"); EventsBus = new EventsBusMock(); ExecutionContext = new ExecutionContextMock(Guid.NewGuid()); PaymentsStartup.Initialize( ConnectionString, ExecutionContext, Logger, EmailsConfiguration, EventsBus, true); PaymentsModule = new PaymentsModule(); }
private void InitializeModules(ILifetimeScope container) { var httpContextAccessor = container.Resolve <IHttpContextAccessor>(); var executionContextAccessor = new ExecutionContextAccessor(httpContextAccessor); var emailsConfiguration = new EmailsConfiguration(_configuration["EmailsConfiguration:FromEmail"]); MeetingsStartup.Initialize( _configuration[MeetingsConnectionString], executionContextAccessor, _logger, emailsConfiguration, null); AdministrationStartup.Initialize( _configuration[MeetingsConnectionString], executionContextAccessor, _logger, null); UserAccessStartup.Initialize( _configuration[MeetingsConnectionString], executionContextAccessor, _logger, emailsConfiguration, _configuration["Security:TextEncryptionKey"], null); PaymentsStartup.Initialize( _configuration[MeetingsConnectionString], executionContextAccessor, _logger, emailsConfiguration, null); }
public static void Initialize(string connectionString, IExecutionContextAccessor executionContextAccessor, ILogger logger, EmailsConfiguration emailsConfiguration, string textEncryptionKey, IEmailSender emailSender, IEventsBus eventsBus, bool runQuartz = true) { var moduleLogger = logger.ForContext("Module", "Matches"); ConfigureCompositionRoot(connectionString, executionContextAccessor, logger, emailsConfiguration, textEncryptionKey, eventsBus, emailSender, runQuartz); if (runQuartz) { QuartzStartup.Initialize(moduleLogger); } EventsBusStartup.Initialize(moduleLogger); }
private static void ConfigureCompositionRoot( string connectionString, IExecutionContextAccessor executionContextAccessor, ILogger logger, EmailsConfiguration emailsConfiguration) { var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterModule(new LoggingModule(logger.ForContext("Module", "Meetings"))); var loggerFactory = new SerilogLoggerFactory(logger); containerBuilder.RegisterModule(new DataAccessModule(connectionString, loggerFactory)); containerBuilder.RegisterModule(new ProcessingModule()); containerBuilder.RegisterModule(new EventsBusModule()); containerBuilder.RegisterModule(new MediatorModule()); containerBuilder.RegisterModule(new AuthenticationModule()); containerBuilder.RegisterModule(new OutboxModule()); containerBuilder.RegisterModule(new EmailModule(emailsConfiguration)); containerBuilder.RegisterModule(new QuartzModule()); containerBuilder.RegisterInstance(executionContextAccessor); _container = containerBuilder.Build(); MeetingsCompositionRoot.SetContainer(_container); }
private static void ConfigureCompositionRoot( string connectionString, IExecutionContextAccessor executionContextAccessor, ILogger logger, EmailsConfiguration emailsConfiguration, string textEncryptionKey, IEmailSender emailSender) { var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterModule(new LoggingModule(logger.ForContext("Module", "UserAccess"))); var loggerFactory = new SerilogLoggerFactory(logger); containerBuilder.RegisterModule(new DataAccessModule(connectionString, loggerFactory)); containerBuilder.RegisterModule(new DomainModule()); containerBuilder.RegisterModule(new ProcessingModule()); containerBuilder.RegisterModule(new EventsBusModule()); containerBuilder.RegisterModule(new MediatorModule()); containerBuilder.RegisterModule(new OutboxModule()); containerBuilder.RegisterModule(new QuartzModule()); containerBuilder.RegisterModule(new EmailModule(emailsConfiguration, emailSender)); containerBuilder.RegisterModule(new SecurityModule(textEncryptionKey)); containerBuilder.RegisterInstance(executionContextAccessor); _container = containerBuilder.Build(); UserAccessCompositionRoot.SetContainer(_container); }
private static void ConfigureCompositionRoot( string connectionString, IExecutionContextAccessor executionContextAccessor, ILogger logger, EmailsConfiguration emailsConfiguration, IEventsBus eventsBus, IEmailSender emailSender) { var builder = new ContainerBuilder(); builder.RegisterModule(new LoggingModule(logger.ForContext("Module", "Matches"))); var loggerFactory = new SerilogLoggerFactory(logger); builder.RegisterModule(new DataAccessModule(connectionString, loggerFactory)); builder.RegisterModule(new DomainModule()); builder.RegisterModule(new ProcessingModule()); builder.RegisterModule(new EventsBusModule(eventsBus)); builder.RegisterModule(new MediatorModule()); builder.RegisterModule(new OutboxModule()); builder.RegisterModule(new EmailModule(emailsConfiguration, emailSender)); builder.RegisterModule(new QuartzModule()); builder.RegisterModule(new IntegrationModule()); //TODO: Add Integration Events Events builder.RegisterInstance(executionContextAccessor); _container = builder.Build(); MatchesCompositionRoot.SetContainer(_container); }
public static void Initialize( string connectionString, IExecutionContextAccessor executionContextAccessor, ILogger logger, EmailsConfiguration emailsConfiguration, string textEncryptionKey, IEmailSender emailSender) { }
public static void Initialize( string connectionString, IExecutionContextAccessor executionContextAccessor, ILogger logger, EmailsConfiguration emailsConfiguration) { var moduleLogger = logger.ForContext("Module", "Meetings"); ConfigureCompositionRoot(connectionString, executionContextAccessor, moduleLogger, emailsConfiguration); QuartzStartup.Initialize(moduleLogger); EventsBusStartup.Initialize(moduleLogger); }
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(); }
private void InitializeModule(ILifetimeScope autofacContainer) { var emailsConfiguration = new EmailsConfiguration(Configuration["EmailsConfiguration:FromEmail"], Configuration["EmailsConfiguration:SendGridUser"], Configuration["EmailsConfiguration:SendGridKey"]); var httpContextAccessor = autofacContainer.Resolve <IHttpContextAccessor>(); var executionContextAccessor = new ExecutionContextAccessor(httpContextAccessor); var eventBus = new EventBusRabbitMQ(_logger, GetRabbitMQConnection(), "football-banter", "Phrases"); PhrasesStartup.Initialize( Configuration["ConnectionString"], executionContextAccessor, _logger, emailsConfiguration, Configuration["Security:TextEncryptionKey"], null, eventBus ); }
public static void Initialize(string connectionString, IExecutionContextAccessor executionContextAccessor, ILogger logger, EmailsConfiguration emailsConfiguration, string textEncryptionKey, IEmailSender emailSender) { var moduleLogger = logger.ForContext("Module", "UserAccess"); ConfigureCompositionRoot(connectionString, executionContextAccessor, logger, emailsConfiguration, textEncryptionKey, emailSender); QuartzStartup.Initialize(moduleLogger); EventsBusStartup.Initialize(moduleLogger); }
private static void ConfigureCompositionRoot( string connectionString, IExecutionContextAccessor executionContextAccessor, ILogger logger, EmailsConfiguration emailsConfiguration, IEventsBus eventsBus) { var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterModule(new LoggingModule(logger.ForContext("Module", "Meetings"))); 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()); var domainNotificationsMap = new BiDictionary <string, Type>(); domainNotificationsMap.Add("MeetingGroupProposalAcceptedNotification", typeof(MeetingGroupProposalAcceptedNotification)); domainNotificationsMap.Add("MeetingGroupProposedNotification", typeof(MeetingGroupProposedNotification)); domainNotificationsMap.Add("MeetingGroupCreatedNotification", typeof(MeetingGroupCreatedNotification)); domainNotificationsMap.Add("MeetingAttendeeAddedNotification", typeof(MeetingAttendeeAddedNotification)); domainNotificationsMap.Add("MemberCreatedNotification", typeof(MemberCreatedNotification)); domainNotificationsMap.Add("MemberSubscriptionExpirationDateChangedNotification", typeof(MemberSubscriptionExpirationDateChangedNotification)); domainNotificationsMap.Add("MeetingCommentLikedNotification", typeof(MeetingCommentLikedNotification)); domainNotificationsMap.Add("MeetingCommentUnlikedNotification", typeof(MeetingCommentUnlikedNotification)); containerBuilder.RegisterModule(new OutboxModule(domainNotificationsMap)); containerBuilder.RegisterModule(new EmailModule(emailsConfiguration)); containerBuilder.RegisterModule(new QuartzModule()); containerBuilder.RegisterInstance(executionContextAccessor); _container = containerBuilder.Build(); MeetingsCompositionRoot.SetContainer(_container); }
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()); containerBuilder.RegisterModule(new OutboxModule()); if (runQuartz) { containerBuilder.RegisterModule(new QuartzModule()); } containerBuilder.RegisterInstance(executionContextAccessor); _container = containerBuilder.Build(); PaymentsCompositionRoot.SetContainer(_container); RunEventsProjectors(); }
public EmailModule(EmailsConfiguration configuration) { _configuration = configuration; }
public ArticleCreatedConsumer(IEmailService emailService, IMediator mediator, EmailsConfiguration emails) { _emailService = emailService; _mediator = mediator; _emails = emails; }