public static IServiceProvider Initialize( IServiceCollection services, string connectionString, ICacheStore cacheStore, IEmailSender emailSender, IFileSaver fileSaver, EmailsSettings emailsSettings, AzureBlobStorageSettings azureBlobStorageSettings, ILogger logger, IExecutionContextAccessor executionContextAccessor, IUserAuthIdProvider userAuthIdProvider, bool runQuartz = true) { if (runQuartz) { StartQuartz(connectionString, emailsSettings, azureBlobStorageSettings, logger, executionContextAccessor, userAuthIdProvider); } services.AddSingleton(cacheStore); var serviceProvider = CreateAutofacServiceProvider( services, connectionString, emailSender, fileSaver, emailsSettings, azureBlobStorageSettings, logger, executionContextAccessor, userAuthIdProvider); return(serviceProvider); }
public AddTreeOwnerCommandHandler(ITreeRepository treeRepository, IUserProfileRepository userProfileRepository, IUserAuthIdProvider userAuthIdProvider, IUserAuthIdUniquenessChecker userAuthIdUniquenessChecker) { _treeRepository = treeRepository; _userProfileRepository = userProfileRepository; _userAuthIdProvider = userAuthIdProvider; _userAuthIdUniquenessChecker = userAuthIdUniquenessChecker; }
private static void StartQuartz( string connectionString, EmailsSettings emailsSettings, AzureBlobStorageSettings blobStorageSettings, ILogger logger, IExecutionContextAccessor executionContextAccessor, IUserAuthIdProvider userAuthIdProvider) { var schedulerFactory = new StdSchedulerFactory(); var scheduler = schedulerFactory.GetScheduler().GetAwaiter().GetResult(); var container = new ContainerBuilder(); container.RegisterModule(new LoggingModule(logger)); container.RegisterModule(new QuartzModule()); container.RegisterModule(new MediatorModule()); container.RegisterModule(new DataAccessModule(connectionString)); container.RegisterModule(new EmailModule(emailsSettings)); container.RegisterModule(new ProcessingModule()); container.RegisterModule(new AuthenticationModule(userAuthIdProvider)); container.RegisterModule(new AzureBlobStorageModule(blobStorageSettings)); container.RegisterInstance(executionContextAccessor); container.Register(c => { var dbContextOptionsBuilder = new DbContextOptionsBuilder <TreesContext>(); dbContextOptionsBuilder.UseSqlServer(connectionString); dbContextOptionsBuilder .ReplaceService <IValueConverterSelector, StronglyTypedIdValueConverterSelector>(); return(new TreesContext(dbContextOptionsBuilder.Options)); }).AsSelf().InstancePerLifetimeScope(); scheduler.JobFactory = new JobFactory(container.Build()); scheduler.Start().GetAwaiter().GetResult(); var processOutboxJob = JobBuilder.Create <ProcessOutboxJob>().Build(); var trigger = TriggerBuilder .Create() .StartNow() .WithCronSchedule("0/15 * * ? * *") .Build(); scheduler.ScheduleJob(processOutboxJob, trigger).GetAwaiter().GetResult(); var processInternalCommandsJob = JobBuilder.Create <ProcessInternalCommandsJob>().Build(); var triggerCommandsProcessing = TriggerBuilder .Create() .StartNow() .WithCronSchedule("0/15 * * ? * *") .Build(); scheduler.ScheduleJob(processInternalCommandsJob, triggerCommandsProcessing).GetAwaiter().GetResult(); }
public ApplicationFixture() { const string connectionStringEnvironmentVariable = "ASPNETCORE_TreeOfAKind_IntegrationTests_ConnectionString"; ConnectionString = Environment.GetEnvironmentVariable(connectionStringEnvironmentVariable); if (ConnectionString == null) { throw new ApplicationException( $"Define connection string to integration tests database using environment variable: {connectionStringEnvironmentVariable}"); } using var sqlConnection = new SqlConnection(ConnectionString); ClearDatabase(sqlConnection); EmailsSettings = new EmailsSettings { FromAddressEmail = "*****@*****.**" }; AzureBlobStorageSettings = new AzureBlobStorageSettings { ConnectionString = "someConnectionString", Metadata = new Dictionary <string, string> { { "IntegrationTesting", "true" } } }; EmailSender = Substitute.For <IEmailSender>(); FileSaver = Substitute.For <IFileSaver>(); UserAuthIdProvider = Substitute.For <IUserAuthIdProvider>(); ExecutionContext = new ExecutionContextMock(); ApplicationStartup.Initialize( new ServiceCollection(), ConnectionString, new CacheStore(), EmailSender, FileSaver, EmailsSettings, AzureBlobStorageSettings, Logger.None, ExecutionContext, UserAuthIdProvider, runQuartz: false); }
private static IServiceProvider CreateAutofacServiceProvider( IServiceCollection services, string connectionString, IEmailSender emailSender, IFileSaver fileSaver, EmailsSettings emailsSettings, AzureBlobStorageSettings azureBlobStorageSettings, ILogger logger, IExecutionContextAccessor executionContextAccessor, IUserAuthIdProvider userAuthIdProvider) { var container = new ContainerBuilder(); container.Populate(services); container.RegisterModule(new LoggingModule(logger)); container.RegisterModule(new DataAccessModule(connectionString)); container.RegisterModule(new MediatorModule()); container.RegisterModule(new DomainModule()); container.RegisterModule(new GedcomXToDomainModule()); container.RegisterModule(new AuthenticationModule(userAuthIdProvider)); container.RegisterModule(new AzureBlobStorageModule(azureBlobStorageSettings, fileSaver)); if (emailSender != null) { container.RegisterModule(new EmailModule(emailSender, emailsSettings)); } else { container.RegisterModule(new EmailModule(emailsSettings)); } container.RegisterModule(new ProcessingModule()); container.RegisterInstance(executionContextAccessor); var buildContainer = container.Build(); ServiceLocator.SetLocatorProvider(() => new AutofacServiceLocator(buildContainer)); var serviceProvider = new AutofacServiceProvider(buildContainer); CompositionRoot.SetContainer(buildContainer); return(serviceProvider); }
public AuthenticationModule(IUserAuthIdProvider userAuthIdProvider) { _userAuthIdProvider = userAuthIdProvider; }