public HighAvailabilityViewModel(IDialogCoordinator dialogCoordinator, IShellExecuteProvider shellExecuteProvider, IAmsLicenseManager licenseManager, ILogger <HighAvailabilityViewModel> logger, INotifyModelChangedEventPublisher eventPublisher, DatabaseConfigurationOptions highAvailabilityOptions, DataProtectionOptions dataProtectionOptions, ICertificateSynchronizationProvider certSyncProvider, ISecretRekeyProvider rekeyProvider, SqlServerInstanceProvider sqlInstanceProvider, IScriptTemplateProvider scriptTemplateProvider, IWindowsServiceProvider windowsServiceProvider) { this.shellExecuteProvider = shellExecuteProvider; this.licenseManager = licenseManager; this.logger = logger; this.dbOptions = highAvailabilityOptions; this.dataProtectionOptions = dataProtectionOptions; this.certSyncProvider = certSyncProvider; this.dialogCoordinator = dialogCoordinator; this.rekeyProvider = rekeyProvider; this.sqlInstanceProvider = sqlInstanceProvider; this.scriptTemplateProvider = scriptTemplateProvider; this.windowsServiceProvider = windowsServiceProvider; this.licenseManager.OnLicenseDataChanged += delegate { this.NotifyOfPropertyChange(nameof(this.IsEnterpriseEdition)); this.NotifyOfPropertyChange(nameof(this.ShowEnterpriseEditionBanner)); }; this.DisplayName = "High availability"; eventPublisher.Register(this); this.isClusterCompatibleSecretEncryptionEnabled = this.dataProtectionOptions.EnableClusterCompatibleSecretEncryption; }
public SqlDbProvider(IAmsLicenseManager licenseManager, IOptions <DatabaseConfigurationOptions> highAvailabilityOptions, ILogger <SqlDbProvider> logger, IUpgradeLog upgradeLogger, SqlLocalDbInstanceProvider localDbInstanceProvider, SqlServerInstanceProvider sqlServerInstanceProvider) { this.licenseManager = licenseManager; this.highAvailabilityOptions = highAvailabilityOptions.Value; this.logger = logger; this.upgradeLogger = upgradeLogger; this.localDbInstanceProvider = localDbInstanceProvider; this.sqlServerInstanceProvider = sqlServerInstanceProvider; this.InitializeDb(); }