public ActionResult SetInitialConfig(InitialSetupConfigModel config) { appSettings.Update(setting => setting.DatastoreRootPath = config.DatastoreRootPath); DatabaseLocator dbLocator = new DatabaseLocator(config.DatastoreRootPath); LiteDbConfigurationRepository configurationRepository = new LiteDbConfigurationRepository(dbLocator.GetConfigurationRepositoryConnectionString()); InitialSetupLogic initialSetupLogic = new InitialSetupLogic(configurationRepository); initialSetupLogic.Complete(config); return(RedirectToAction("Complete", "InitialSetup")); }
public void Complete(InitialSetupConfigModel config) { ActiveDirectoryMetadata idp = idpLogic.Add(config.AdName, config.AdServer, config.AdSearchBase, config.AdServiceAccountUsername, config.AdServiceAccountPassword, config.AdUseAppPoolIdentity); certificateAuthorityConfigurationLogic.AddPrivateCertificateAuthority(config.AdcsServerName, config.AdcsCommonName, config.AdcsHashAlgorithm, idp.Id); AdcsTemplate adcsTemplate = templateLogic.AddTemplate(config.AdcsTemplateName, config.AdcsTemplateCipher, config.AdcsTemplateKeyUsage, config.AdcsTemplateWindowsApi, RoleManagementLogic.DefaultTemplateIssuerRoles); AuthenticablePrincipal emergencyAccess = localIdpLogic.InitializeEmergencyAccess(config.EmergencyAccessKey); AuthenticablePrincipal admin = localIdpLogic.InitializeLocalAdministrator(config.LocalAdminPassword); authorizationLogic.InitializeScopes(); roleManagement.InitializeRoles(new List <Guid>() { emergencyAccess.Id, admin.Id }); AppConfig appConfig = new AppConfig() { EncryptionKey = config.EncryptionKey, Id = Guid.NewGuid() }; configurationRepository.SetAppConfig(appConfig); }