private async Task Initialize() { await Task.Run(async() => { this.IsLoading = true; this.ViewModels = new BindableCollection <SecurityDescriptorTargetViewModel>(); var items = (await Task.WhenAll(this.Model.Select(t => factory.CreateViewModelAsync(t, this.ChildDisplaySettings)))).ToList(); this.ViewModels.AddRange(items); Execute.OnUIThreadSync(() => { this.Items = (ListCollectionView)CollectionViewSource.GetDefaultView(this.ViewModels); this.Items.Filter = this.IsFiltered; this.Items.CustomSort = this.customComparer; this.customComparer.SortDirection = currentSortDirection; this.Items.Refresh(); }); this.IsLoading = false; eventPublisher.Register(this); }); }
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 EmailViewModel(EmailOptions emailOptions, INotifyModelChangedEventPublisher eventPublisher, IShellExecuteProvider shellExecuteProvider, IProtectedSecretProvider secretProvider, AdminNotificationOptions adminNotificationOptions) { this.shellExecuteProvider = shellExecuteProvider; this.secretProvider = secretProvider; this.adminNotificationOptions = adminNotificationOptions; this.emailOptions = emailOptions; this.DisplayName = "Email"; eventPublisher.Register(this); }
public IpDetectionViewModel(ForwardedHeadersAppOptions model, IDialogCoordinator dialogCoordinator, INotifyModelChangedEventPublisher eventPublisher, IShellExecuteProvider shellExecuteProvider) { this.shellExecuteProvider = shellExecuteProvider; this.DisplayName = "IP address detection"; this.model = model; this.dialogCoordinator = dialogCoordinator; this.model.KnownNetworks ??= new List <string>(); this.model.KnownProxies ??= new List <string>(); this.KnownProxies = new BindableCollection <string>(model.KnownProxies); this.KnownNetworks = new BindableCollection <string>(model.KnownNetworks); eventPublisher.Register(this); }
public UserInterfaceViewModel(UserInterfaceOptions model, IDialogCoordinator dialogCoordinator, IAppPathProvider appPathProvider, INotifyModelChangedEventPublisher eventPublisher, ILogger <UserInterfaceViewModel> logger, IShellExecuteProvider shellExecuteProvider) { this.shellExecuteProvider = shellExecuteProvider; this.appPathProvider = appPathProvider; this.dialogCoordinator = dialogCoordinator; this.logger = logger; this.model = model; this.DisplayName = "User interface"; model.PhoneticSettings ??= new PhoneticSettings(); eventPublisher.Register(this); }
public LicensingViewModel(IDialogCoordinator dialogCoordinator, IShellExecuteProvider shellExecuteProvider, IAmsLicenseManager licenseManager, ILogger <LicensingViewModel> logger, LicensingOptions licensingOptions, INotifyModelChangedEventPublisher eventPublisher, ILicenseDataProvider licenseDataProvider, IEventAggregator eventAggregator) { this.shellExecuteProvider = shellExecuteProvider; this.licenseManager = licenseManager; this.logger = logger; this.licensingOptions = licensingOptions; this.licenseDataProvider = licenseDataProvider; this.eventAggregator = eventAggregator; this.dialogCoordinator = dialogCoordinator; this.DisplayName = "License"; this.ValidationResult = licenseManager.ValidateLicense(licenseDataProvider.GetRawLicenseData()); eventPublisher.Register(this); }
public NotificationChannelSelectionViewModel(AuditNotificationChannels model, INotificationSubscriptionProvider subscriptionProvider, IEventAggregator eventAggregator, INotifyModelChangedEventPublisher eventPublisher) { this.Model = model; this.subscriptionProvider = subscriptionProvider; this.SuccessSubscriptions = subscriptionProvider.GetSubscriptions(this.Model.OnSuccess); this.FailureSubscriptions = subscriptionProvider.GetSubscriptions(this.Model.OnFailure); this.AvailableSuccessSubscriptions = new BindableCollection <SubscriptionViewModel>(subscriptionProvider.Subscriptions.Except(this.SuccessSubscriptions)); this.AvailableFailureSubscriptions = new BindableCollection <SubscriptionViewModel>(subscriptionProvider.Subscriptions.Except(this.FailureSubscriptions)); eventAggregator.Subscribe(this); eventPublisher.Register(this); }
public RateLimitsViewModel(RateLimitOptions model, INotifyModelChangedEventPublisher eventPublisher, IShellExecuteProvider shellExecuteProvider) { this.shellExecuteProvider = shellExecuteProvider; this.model = model; this.DisplayName = "Rate limits"; if (this.model.PerUser == null) { this.model.PerUser = new RateLimitThresholds(); } if (this.model.PerIP == null) { this.model.PerIP = new RateLimitThresholds(); } eventPublisher.Register(this); }
public HostingViewModel(HostingOptions model, IDialogCoordinator dialogCoordinator, IWindowsServiceProvider windowsServiceProvider, ILogger <HostingViewModel> logger, IModelValidator <HostingViewModel> validator, IAppPathProvider pathProvider, INotifyModelChangedEventPublisher eventPublisher, ICertificateProvider certProvider, IShellExecuteProvider shellExecuteProvider, IEventAggregator eventAggregator, IDirectory directory, IScriptTemplateProvider scriptTemplateProvider, ICertificatePermissionProvider certPermissionProvider, IRegistryProvider registryProvider, ISecretRekeyProvider rekeyProvider, IObjectSelectionProvider objectSelectionProvider, IDiscoveryServices discoveryServices, IAmsLicenseManager licenseManager, IApplicationUpgradeProvider appUpgradeProvider, IHttpSysConfigurationProvider certificateBindingProvider, IFirewallProvider firewallProvider) { this.logger = logger; this.pathProvider = pathProvider; this.OriginalModel = model; this.certProvider = certProvider; this.dialogCoordinator = dialogCoordinator; this.windowsServiceProvider = windowsServiceProvider; this.shellExecuteProvider = shellExecuteProvider; this.eventAggregator = eventAggregator; this.Validator = validator; this.directory = directory; this.scriptTemplateProvider = scriptTemplateProvider; this.certPermissionProvider = certPermissionProvider; this.registryProvider = registryProvider; this.rekeyProvider = rekeyProvider; this.objectSelectionProvider = objectSelectionProvider; this.discoveryServices = discoveryServices; this.licenseManager = licenseManager; this.appUpgradeProvider = appUpgradeProvider; this.certificateBindingProvider = certificateBindingProvider; this.firewallProvider = firewallProvider; this.WorkingModel = this.CloneModel(model); this.Certificate = this.certificateBindingProvider.GetCertificate(); this.OriginalCertificate = this.Certificate; this.ServiceAccount = this.windowsServiceProvider.GetServiceAccountSid(); this.ServiceStatus = this.windowsServiceProvider.Status.ToString(); this.DisplayName = "Web hosting"; this.licenseManager.OnLicenseDataChanged += delegate { this.NotifyOfPropertyChange(nameof(this.IsEnterpriseEdition)); this.NotifyOfPropertyChange(nameof(this.IsStandardEdition)); }; eventPublisher.Register(this); }