public override Response Execute() { // Initialize application install service -- TODO -- use DI to create kernel and get correct implementation if (this.parallelizationInstallationService == null) { // Build up application installation service var logger = new TextLogger(); var connectionFactory = new HelperConnectionFactory(this.Helper); var sqlRepo = new SqlServerRepository(connectionFactory); var hashConverter = new LegacyHashConversionService(); var tabRepository = new TabRepository(connectionFactory); var relativityOneService = new RelativityOneService(sqlRepo.ConfigurationRepository); var tabService = new TabService(tabRepository, relativityOneService); var databaseMigratorFactory = new DatabaseMigratorFactory(connectionFactory); var databaseDeployer = new DatabaseDeployer(databaseMigratorFactory, new ErrorOnlyMigrationResultHandler(logger)); var applicationInstallationService = new ApplicationInstallationService(connectionFactory, sqlRepo, hashConverter, tabService, databaseDeployer, logger); var toggleProvider = new PdbSqlToggleProvider(connectionFactory); var forceDeparallelization = toggleProvider.IsEnabled <DatabaseDeploymentDeparallelizationToggle>(); if (forceDeparallelization) { // Build up the service that checks for version var versionCheckService = new VersionCheckService(new PdbVersionRepository(connectionFactory), logger); this.parallelizationInstallationService = new SingletonDatabaseInstallationService(applicationInstallationService, versionCheckService, new TimeService(), logger); } else { // Build up the service that actually runs the install process this.parallelizationInstallationService = new DefaultDatabaseInstallationService(applicationInstallationService); } } // Install the application var appInstallResponse = this.parallelizationInstallationService.InstallApplication(this.Helper.GetActiveCaseID()).GetAwaiter().GetResult(); // Return response return(new Response { Message = appInstallResponse.Message, Success = appInstallResponse.Success }); }
public void SetUp() { this.pdbVersionRepositoryMock = new Mock <IPdbVersionRepository>(MockBehavior.Strict); this.loggerMock = TestUtilities.GetMockLogger(); this.versionCheckService = new VersionCheckService(this.pdbVersionRepositoryMock.Object, this.loggerMock.Object); }