コード例 #1
0
        public SecurityDescriptorTargetViewModel(SecurityDescriptorTarget model, SecurityDescriptorTargetViewModelDisplaySettings displaySettings, INotificationChannelSelectionViewModelFactory notificationChannelFactory, IFileSelectionViewModelFactory fileSelectionViewModelFactory, IAppPathProvider appPathProvider, ILogger <SecurityDescriptorTargetViewModel> logger, IDialogCoordinator dialogCoordinator, IModelValidator <SecurityDescriptorTargetViewModel> validator, IDirectory directory, IDomainTrustProvider domainTrustProvider, IDiscoveryServices discoveryServices, ILocalSam localSam, IObjectSelectionProvider objectSelectionProvider, ScriptTemplateProvider scriptTemplateProvider, IAmsLicenseManager licenseManager, IShellExecuteProvider shellExecuteProvider)
        {
            this.directory                  = directory;
            this.Model                      = model;
            this.logger                     = logger;
            this.dialogCoordinator          = dialogCoordinator;
            this.notificationChannelFactory = notificationChannelFactory;
            this.Validator                  = validator;
            this.domainTrustProvider        = domainTrustProvider;
            this.discoveryServices          = discoveryServices;
            this.localSam                   = localSam;
            this.displaySettings            = displaySettings ?? new SecurityDescriptorTargetViewModelDisplaySettings();
            this.objectSelectionProvider    = objectSelectionProvider;
            this.scriptTemplateProvider     = scriptTemplateProvider;
            this.licenseManager             = licenseManager;
            this.shellExecuteProvider       = shellExecuteProvider;

            this.Script = fileSelectionViewModelFactory.CreateViewModel(model, () => model.Script, appPathProvider.ScriptsPath);
            this.Script.DefaultFileExtension = "ps1";
            this.Script.Filter           = "PowerShell script|*.ps1";
            this.Script.NewFileContent   = this.scriptTemplateProvider.GetAuthorizationResponse;
            this.Script.ShouldValidate   = false;
            this.Script.PropertyChanged += Script_PropertyChanged;
            this.Initialization          = this.Initialize();
        }
コード例 #2
0
        public AuthenticationViewModel(AuthenticationOptions model, ILogger <AuthenticationViewModel> logger, INotifyModelChangedEventPublisher eventPublisher, IDialogCoordinator dialogCoordinator, IX509Certificate2ViewModelFactory x509ViewModelFactory, IDirectory directory, IShellExecuteProvider shellExecuteProvider, IObjectSelectionProvider objectSelectionProvider, IProtectedSecretProvider secretProvider)
        {
            this.shellExecuteProvider = shellExecuteProvider;
            this.model                   = model;
            this.dialogCoordinator       = dialogCoordinator;
            this.x509ViewModelFactory    = x509ViewModelFactory;
            this.logger                  = logger;
            this.directory               = directory;
            this.eventPublisher          = eventPublisher;
            this.objectSelectionProvider = objectSelectionProvider;
            this.secretProvider          = secretProvider;

            this.DisplayName = "Authentication";

            model.Iwa ??= new IwaAuthenticationProviderOptions();
            model.Oidc ??= new OidcAuthenticationProviderOptions();
            model.WsFed ??= new WsFedAuthenticationProviderOptions();
            model.ClientCert ??= new CertificateAuthenticationProviderOptions();
            model.ClientCert.TrustedIssuers ??= new List <string>();
            model.ClientCert.RequiredEkus ??= new List <string>();
            model.AllowedPrincipals ??= new List <string>();

            this.TrustedIssuers    = new BindableCollection <X509Certificate2ViewModel>();
            this.RequiredEkus      = new BindableCollection <string>(model.ClientCert.RequiredEkus);
            this.AllowedPrincipals = new BindableCollection <SecurityIdentifierViewModel>();
        }
コード例 #3
0
        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;
        }
コード例 #4
0
        public ImportWizardWindowViewModel(IDialogCoordinator dialogCoordinator, ILogger <ImportWizardWindowViewModel> logger, ImportWizardImportTypeViewModel importTypeVm, ImportWizardCsvSettingsViewModel csvSettingsVm, ImportWizardImportContainerViewModel containerVm, ImportWizardRuleSettingsViewModel ruleVm, ImportWizardLapsWebSettingsViewModel lapsWebVm, ImportWizardImportReadyViewModel importReadyVm, IImportProviderFactory importProviderFactory, IImportResultsViewModelFactory resultsFactory, AuditOptions auditOptions, IEventAggregator eventAggregator, IShellExecuteProvider shellExecuteProvider)
        {
            this.logger                = logger;
            this.dialogCoordinator     = dialogCoordinator;
            this.DisplayName           = Constants.AppName;
            this.dialogCoordinator     = dialogCoordinator;
            this.importProviderFactory = importProviderFactory;
            this.resultsFactory        = resultsFactory;
            this.auditOptions          = auditOptions;
            this.eventAggregator       = eventAggregator;
            this.shellExecuteProvider  = shellExecuteProvider;

            // VM mappings
            this.importTypeVm  = importTypeVm;
            this.csvSettingsVm = csvSettingsVm;
            this.containerVm   = containerVm;
            this.ruleVm        = ruleVm;
            this.lapsWebVm     = lapsWebVm;
            this.importReadyVm = importReadyVm;

            // Bindings
            this.importTypeVm.Bind(t => t.ImportType, OnImportModeChanged);

            // Initial binds
            this.Items.Add(importTypeVm);
            this.UpdateImportModeOnViewModels();
            this.ActiveItem = this.Items.First();
        }
コード例 #5
0
 public ImportResultsViewModelFactory(IDialogCoordinator dialogCoordinator, ILogger <ImportResultsViewModel> logger, Func <IEventAggregator> eventAggregator, ISecurityDescriptorTargetsViewModelFactory targetsFactory, IShellExecuteProvider shellExecuteProvider)
 {
     this.dialogCoordinator    = dialogCoordinator;
     this.logger               = logger;
     this.eventAggregator      = eventAggregator;
     this.targetsFactory       = targetsFactory;
     this.shellExecuteProvider = shellExecuteProvider;
 }
コード例 #6
0
 public ImportWizardCsvSettingsViewModel(ILogger <ImportWizardCsvSettingsViewModel> logger, IDialogCoordinator dialogCoordinator, IModelValidator <ImportWizardCsvSettingsViewModel> validator, IShellExecuteProvider shellExecuteProvider)
 {
     this.logger               = logger;
     this.dialogCoordinator    = dialogCoordinator;
     this.shellExecuteProvider = shellExecuteProvider;
     this.Validator            = validator;
     this.Validate();
 }
コード例 #7
0
 public BitLockerViewModel(IDialogCoordinator dialogCoordinator, IWindowsServiceProvider windowsServiceProvider, IShellExecuteProvider shellExecuteProvider, IScriptTemplateProvider scriptTemplateProvider)
 {
     this.shellExecuteProvider   = shellExecuteProvider;
     this.scriptTemplateProvider = scriptTemplateProvider;
     this.dialogCoordinator      = dialogCoordinator;
     this.windowsServiceProvider = windowsServiceProvider;
     this.DisplayName            = "BitLocker";
 }
コード例 #8
0
        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);
        }
コード例 #9
0
 public AuthorizationViewModel(AuthorizationOptions model, SecurityDescriptorTargetsViewModelFactory targetViewModelFactory, IShellExecuteProvider shellExecuteProvider, IDialogCoordinator dialogCoordinator, ILogger <AuthorizationViewModel> logger, Func <ImportWizardWindowViewModel> importWizardFactory, IWindowManager windowManager)
 {
     this.shellExecuteProvider = shellExecuteProvider;
     this.model = model;
     this.targetViewModelFactory = targetViewModelFactory;
     this.logger = logger;
     this.importWizardFactory = importWizardFactory;
     this.windowManager       = windowManager;
     this.DisplayName         = "Authorization";
 }
コード例 #10
0
 public ImportResultsViewModel(ImportResults results, ISecurityDescriptorTargetsViewModelFactory targetsFactory, IEventAggregator eventAggregator, ILogger <ImportResultsViewModel> logger, IDialogCoordinator dialogCoordinator, IShellExecuteProvider shellExecuteProvider)
 {
     this.results              = results;
     this.logger               = logger;
     this.dialogCoordinator    = dialogCoordinator;
     this.shellExecuteProvider = shellExecuteProvider;
     this.targetsFactory       = targetsFactory;
     this.eventAggregator      = eventAggregator;
     this.Initialization       = this.Initialize();
 }
コード例 #11
0
 public ImportWizardRuleSettingsViewModel(INotificationChannelSelectionViewModelFactory notificationChannelFactory, ILogger <ImportWizardRuleSettingsViewModel> logger, IDialogCoordinator dialogCoordinator, IModelValidator <ImportWizardRuleSettingsViewModel> validator, IDirectory directory, IObjectSelectionProvider objectSelectionProvider, IShellExecuteProvider shellExecuteProvider)
 {
     this.directory                  = directory;
     this.logger                     = logger;
     this.dialogCoordinator          = dialogCoordinator;
     this.notificationChannelFactory = notificationChannelFactory;
     this.Validator                  = validator;
     this.objectSelectionProvider    = objectSelectionProvider;
     this.shellExecuteProvider       = shellExecuteProvider;
     this.Initialization             = this.Initialize();
 }
コード例 #12
0
 public SecurityDescriptorTargetsViewModelFactory(IDialogCoordinator dialogCoordinator, ISecurityDescriptorTargetViewModelFactory factory, Func <INotifyModelChangedEventPublisher> eventPublisher, ILogger <SecurityDescriptorTargetsViewModel> logger, IDirectory directory, IComputerTargetProvider computerTargetProvider, IEffectiveAccessViewModelFactory effectiveAccessFactory, IShellExecuteProvider shellExecuteProvider)
 {
     this.dialogCoordinator      = dialogCoordinator;
     this.factory                = factory;
     this.eventPublisher         = eventPublisher;
     this.logger                 = logger;
     this.directory              = directory;
     this.computerTargetProvider = computerTargetProvider;
     this.effectiveAccessFactory = effectiveAccessFactory;
     this.shellExecuteProvider   = shellExecuteProvider;
 }
コード例 #13
0
 public ImportWizardImportContainerViewModel(ILogger <ImportWizardImportContainerViewModel> logger, IDialogCoordinator dialogCoordinator, IModelValidator <ImportWizardImportContainerViewModel> validator, IObjectSelectionProvider objectSelectionProvider, IDiscoveryServices discoveryServices, IDirectory directory, IWindowsServiceProvider windowsServiceProvider, IShellExecuteProvider shellExecuteProvider)
 {
     this.logger                  = logger;
     this.dialogCoordinator       = dialogCoordinator;
     this.discoveryServices       = discoveryServices;
     this.objectSelectionProvider = objectSelectionProvider;
     this.directory               = directory;
     this.Validator               = validator;
     this.windowsServiceProvider  = windowsServiceProvider;
     this.shellExecuteProvider    = shellExecuteProvider;
     this.Initialization          = this.Initialize();
 }
コード例 #14
0
        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);
        }
コード例 #15
0
 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);
 }
コード例 #16
0
 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);
 }
コード例 #17
0
        public ActiveDirectoryConfigurationViewModel(IActiveDirectoryForestSchemaViewModelFactory forestFactory, IActiveDirectoryDomainPermissionViewModelFactory domainFactory, IDialogCoordinator dialogCoordinator, IWindowsServiceProvider windowsServiceProvider, ILogger <ActiveDirectoryConfigurationView> logger, IShellExecuteProvider shellExecuteProvider, IDomainTrustProvider domainTrustProvider, IScriptTemplateProvider scriptTemplateProvider)
        {
            this.dialogCoordinator      = dialogCoordinator;
            this.domainFactory          = domainFactory;
            this.forestFactory          = forestFactory;
            this.windowsServiceProvider = windowsServiceProvider;
            this.shellExecuteProvider   = shellExecuteProvider;
            this.domainTrustProvider    = domainTrustProvider;
            this.scriptTemplateProvider = scriptTemplateProvider;
            this.DisplayName            = "Active Directory";

            this.Forests = new BindableCollection <ActiveDirectoryForestSchemaViewModel>();
            this.Domains = new BindableCollection <ActiveDirectoryDomainPermissionViewModel>();
        }
コード例 #18
0
 public AuditingViewModel(AuditOptions model, IShellExecuteProvider shellExecuteProvider,
                          INotificationChannelDefinitionsViewModelFactory <PowershellNotificationChannelDefinition, PowershellNotificationChannelDefinitionViewModel> psFactory,
                          INotificationChannelDefinitionsViewModelFactory <SmtpNotificationChannelDefinition, SmtpNotificationChannelDefinitionViewModel> smtpFactory,
                          INotificationChannelDefinitionsViewModelFactory <WebhookNotificationChannelDefinition, WebhookNotificationChannelDefinitionViewModel> whFactory,
                          INotificationChannelSelectionViewModelFactory notificationChannelSelectionViewModelFactory
                          )
 {
     this.model                = model;
     this.psFactory            = psFactory;
     this.smtpFactory          = smtpFactory;
     this.whFactory            = whFactory;
     this.shellExecuteProvider = shellExecuteProvider;
     this.notificationChannelSelectionViewModelFactory = notificationChannelSelectionViewModelFactory;
     this.DisplayName = "Auditing";
 }
コード例 #19
0
        public SecurityDescriptorTargetsViewModel(IList <SecurityDescriptorTarget> model, ISecurityDescriptorTargetViewModelFactory factory, IDialogCoordinator dialogCoordinator, INotifyModelChangedEventPublisher eventPublisher, ILogger <SecurityDescriptorTargetsViewModel> logger, IDirectory directory, IComputerTargetProvider computerTargetProvider, IEffectiveAccessViewModelFactory effectiveAccessFactory, IShellExecuteProvider shellExecuteProvider)
        {
            this.factory                = factory;
            this.Model                  = model;
            this.dialogCoordinator      = dialogCoordinator;
            this.logger                 = logger;
            this.directory              = directory;
            this.computerTargetProvider = computerTargetProvider;
            this.effectiveAccessFactory = effectiveAccessFactory;
            this.shellExecuteProvider   = shellExecuteProvider;
            this.customComparer         = new SecurityDescriptorTargetViewModelComparer();
            this.ChildDisplaySettings   = new SecurityDescriptorTargetViewModelDisplaySettings();
            this.eventPublisher         = eventPublisher;

            this.Initialization = this.Initialize();
        }
コード例 #20
0
 public SecurityDescriptorTargetViewModelFactory(IDialogCoordinator dialogCoordinator, IAppPathProvider appPathProvider, INotificationChannelSelectionViewModelFactory channelSelectionViewModelFactory, IFileSelectionViewModelFactory fileSelectionViewModelFactory, ILogger <SecurityDescriptorTargetViewModel> logger, IDiscoveryServices discoveryServices, IDomainTrustProvider domainTrustProvider, IDirectory directory, ILocalSam localsam, IObjectSelectionProvider objectSelectionProvider, Func <IModelValidator <SecurityDescriptorTargetViewModel> > validator, ScriptTemplateProvider scriptTemplateProvider, IAmsLicenseManager licenseManager, IShellExecuteProvider shellExecuteProvider)
 {
     this.dialogCoordinator = dialogCoordinator;
     this.appPathProvider   = appPathProvider;
     this.channelSelectionViewModelFactory = channelSelectionViewModelFactory;
     this.fileSelectionViewModelFactory    = fileSelectionViewModelFactory;
     this.logger                  = logger;
     this.directory               = directory;
     this.discoveryServices       = discoveryServices;
     this.domainTrustProvider     = domainTrustProvider;
     this.localSam                = localsam;
     this.objectSelectionProvider = objectSelectionProvider;
     this.validator               = validator;
     this.scriptTemplateProvider  = scriptTemplateProvider;
     this.licenseManager          = licenseManager;
     this.shellExecuteProvider    = shellExecuteProvider;
 }
コード例 #21
0
        public MainWindowViewModel(IApplicationConfig model, AuthenticationViewModel authentication, AuthorizationViewModel authorization, UserInterfaceViewModel ui, RateLimitsViewModel rate, IpDetectionViewModel ip,
                                   AuditingViewModel audit, EmailViewModel mail, HostingViewModel hosting, ActiveDirectoryConfigurationViewModel ad,
                                   JitConfigurationViewModel jit, LapsConfigurationViewModel laps, HelpViewModel help, BitLockerViewModel bitLocker, LicensingViewModel lic, HighAvailabilityViewModel havm, IEventAggregator eventAggregator, IDialogCoordinator dialogCoordinator, ILogger <MainWindowViewModel> logger, IShellExecuteProvider shellExecuteProvider, IWindowsServiceProvider windowsServiceProvider, IRegistryProvider registryProvider, ICertificateSynchronizationProvider certSyncProvider, IAmsLicenseManager licenseManager, IClusterProvider clusterProvider)
        {
            this.model = model;
            this.shellExecuteProvider = shellExecuteProvider;
            this.logger                 = logger;
            this.dialogCoordinator      = dialogCoordinator;
            this.windowsServiceProvider = windowsServiceProvider;
            this.hosting                = hosting;
            this.registryProvider       = registryProvider;
            this.eventAggregator        = eventAggregator;
            this.certSyncProvider       = certSyncProvider;
            this.dialogCoordinator      = dialogCoordinator;
            this.licenseManager         = licenseManager;
            this.clusterProvider        = clusterProvider;
            this.clusterWaitSemaphore   = new SemaphoreSlim(0, 1);

            this.eventAggregator.Subscribe(this);
            this.DisplayName = Constants.AppName;

            this.Items.Add(hosting);
            this.Items.Add(authentication);
            this.Items.Add(ui);
            this.Items.Add(mail);
            this.Items.Add(rate);
            this.Items.Add(ip);
            this.Items.Add(ad);
            this.Items.Add(audit);
            this.Items.Add(laps);
            this.Items.Add(jit);
            this.Items.Add(bitLocker);
            this.Items.Add(authorization);
            this.Items.Add(lic);
            this.Items.Add(havm);

            this.OptionItems = new BindableCollection <PropertyChangedBase> {
                help
            };

            this.ActiveItem = this.Items.First();

            this.UpdateIsConfigured();
            this.SetupClusterMonitor();
        }
コード例 #22
0
        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);
        }
コード例 #23
0
        public JitConfigurationViewModel(JitConfigurationOptions jitOptions, IDialogCoordinator dialogCoordinator, IJitGroupMappingViewModelFactory groupMappingFactory, INotifyModelChangedEventPublisher eventPublisher, IJitDomainStatusViewModelFactory jitDomainStatusFactory, IWindowsServiceProvider windowsServiceProvider, IShellExecuteProvider shellExecuteProvider, IDomainTrustProvider domainTrustProvider, IDiscoveryServices discoveryServices, IObjectSelectionProvider objectSelectionProvider, IScriptTemplateProvider scriptTemplateProvider)
        {
            this.shellExecuteProvider    = shellExecuteProvider;
            this.dialogCoordinator       = dialogCoordinator;
            this.jitOptions              = jitOptions;
            this.groupMappingFactory     = groupMappingFactory;
            this.jitDomainStatusFactory  = jitDomainStatusFactory;
            this.windowsServiceProvider  = windowsServiceProvider;
            this.eventPublisher          = eventPublisher;
            this.domainTrustProvider     = domainTrustProvider;
            this.discoveryServices       = discoveryServices;
            this.objectSelectionProvider = objectSelectionProvider;
            this.scriptTemplateProvider  = scriptTemplateProvider;

            this.DisplayName   = "Just-in-time access";
            this.GroupMappings = new BindableCollection <JitGroupMappingViewModel>();
            this.Domains       = new BindableCollection <JitDomainStatusViewModel>();
        }
コード例 #24
0
        public LapsConfigurationViewModel(IDialogCoordinator dialogCoordinator, ICertificateProvider certificateProvider, IX509Certificate2ViewModelFactory certificate2ViewModelFactory, IWindowsServiceProvider windowsServiceProvider, ILogger <LapsConfigurationViewModel> logger, IShellExecuteProvider shellExecuteProvider, IDomainTrustProvider domainTrustProvider, IDiscoveryServices discoveryServices, IScriptTemplateProvider scriptTemplateProvider, ICertificatePermissionProvider certPermissionProvider, DataProtectionOptions dataProtectionOptions, INotifyModelChangedEventPublisher eventPublisher)
        {
            this.shellExecuteProvider         = shellExecuteProvider;
            this.certificateProvider          = certificateProvider;
            this.certificate2ViewModelFactory = certificate2ViewModelFactory;
            this.dialogCoordinator            = dialogCoordinator;
            this.windowsServiceProvider       = windowsServiceProvider;
            this.logger = logger;
            this.domainTrustProvider    = domainTrustProvider;
            this.discoveryServices      = discoveryServices;
            this.scriptTemplateProvider = scriptTemplateProvider;
            this.dataProtectionOptions  = dataProtectionOptions;
            this.eventPublisher         = eventPublisher;

            this.Forests = new List <Forest>();
            this.AvailableCertificates  = new BindableCollection <X509Certificate2ViewModel>();
            this.DisplayName            = "Local admin passwords";
            this.certPermissionProvider = certPermissionProvider;
        }
コード例 #25
0
        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);
        }
コード例 #26
0
 public ImportWizardImportTypeViewModel(ILogger <ImportWizardImportTypeViewModel> logger, IShellExecuteProvider shellExecuteProvider)
 {
     this.logger = logger;
     this.shellExecuteProvider = shellExecuteProvider;
 }
コード例 #27
0
 public ImportWizardImportReadyViewModel(ILogger <ImportWizardImportReadyViewModel> logger, IDialogCoordinator dialogCoordinator, IShellExecuteProvider shellExecuteProvider)
 {
     this.logger               = logger;
     this.dialogCoordinator    = dialogCoordinator;
     this.shellExecuteProvider = shellExecuteProvider;
 }
コード例 #28
0
 public HelpViewModel(IShellExecuteProvider shellExecuteProvider)
 {
     this.DisplayName          = "Help";
     this.shellExecuteProvider = shellExecuteProvider;
 }
コード例 #29
0
 public ExternalDialogWindow(IShellExecuteProvider shellExecuteProvider)
     : this()
 {
     this.shellExecuteProvider = shellExecuteProvider;
 }