public CertificateSelectView(ServerSettings settings) { InitializeComponent(); _settings = settings; Refresh(); btInstallNewCert.Click += (o, e) => { var openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Файл сертификата (*.pfx,*.cer,*.p7b)|*.pfx;*.cer;*.p7b"; if (openFileDialog.ShowDialog() == DialogResult.OK) { EnterPasswordView.Show("Введите пароль сертификата...", (pass) => { try { var certHash = Lazurite.Windows.Server.Utils.AddCertificate(openFileDialog.FileName, pass); Refresh(); certListView.GetItems().Where(x => ((CertificateInfo)((ItemView)x).Tag).Hash.Equals(certHash)).All(x => x.Selected = true); } catch (Exception exception) { _warningHandler.ErrorFormat(exception, "Ошибка при добавлении сертификата [{0}]", openFileDialog.FileName); } }, null, "Если файл сертификата не имеет пароль, то нажмите \"Применить\""); } }; certListView.SelectionChanged += (o, e) => btApply.IsEnabled = true; btApply.Click += (o, e) => { var selectedCert = (CertificateInfo)((ItemView)certListView.SelectedItem).Tag; _settings.CertificateHash = selectedCert.Hash; Selected?.Invoke(settings); }; }
public ServerSettingsView() { InitializeComponent(); var strOriginalBtChangeFileSecretKeyText = btChangeFileSecretKey.Content.ToString(); if (!_dataEncryptor.IsSecretKeyExist) { btChangeFileSecretKey.Content = "Задать ключ шифрования файлов"; } _settings = (ServerSettings)Lazurite.Windows.Utils.Utils.CloneObject(_server.Settings); tbPort.Validation = (v) => EntryViewValidation.UShortValidation().Invoke(v); tbPort.TextChanged += (o, e) => SettingsChanged(); btChangeCert.Click += (o, e) => CertificateSelectView.Show(_settings, (s) => SettingsChanged()); _server.StatusChanged += Server_StatusChanged; btChangeSecretKey.Click += (o, e) => { EnterPasswordView.Show( "Введите новый секретный ключ сервера...", (pass) => { _settings.SecretKey = pass; SettingsChanged(); }, (pass) => pass.Length == 16, "Длина секретного ключа должна быть равна 16-и символам"); }; btChangeFileSecretKey.Click += (o, e) => { EnterPasswordView.Show( "Введите ключ шифрования файлов...", (pass) => { _dataEncryptor.SecretKey = pass; btChangeFileSecretKey.Content = strOriginalBtChangeFileSecretKeyText; }, (pass) => pass.Length == 16, "Длина секретного ключа должна быть равна 16-и символам"); }; btApply.Click += (o, e) => { try { _settings.Port = ushort.Parse(tbPort.Text); _server.Settings = _settings; btApply.IsEnabled = false; _server.Restart(null); } catch (Exception exception) { _warningHandler.Error("Во время применения настроек сервера произошла ошибка.", exception); } }; Unloaded += (o, e) => Dispose(); Refresh(); }
public ServerSettingsView() { InitializeComponent(); _settings = (ServerSettings)Lazurite.Windows.Utils.Utils.CloneObject(_server.GetSettings()); tbPort.Validation = (v) => EntryViewValidation.UShortValidation().Invoke(v); tbServiceName.Validation = (v) => { var value = v.InputString.Replace(" ", ""); if (value.Length == 0) { value = "Lazurite"; v.SelectAll = true; } v.OutputString = value; }; tbPort.TextChanged += (o, e) => SettingsChanged(); tbServiceName.TextChanged += (o, e) => SettingsChanged(); btChangeCert.Click += (o, e) => CertificateSelectView.Show(_settings, (s) => SettingsChanged()); btChangeSecretKey.Click += (o, e) => { EnterPasswordView.Show( "Введите новый секретный ключ сервера...", (pass) => { _settings.SecretKey = pass; SettingsChanged(); }, (pass) => pass.Length == 16, "Длина секретного ключа должна быть равна 16-и символам"); }; _server.StatusChanged += _server_StatusChanged; btApply.Click += (o, e) => { try { _settings.Port = ushort.Parse(tbPort.Text); _settings.ServiceName = tbServiceName.Text; _server.SetSettings(_settings); Lazurite.Windows.Server.Utils.NetshAddSslCert(_settings.CertificateHash, _settings.Port); Lazurite.Windows.Server.Utils.NetshAddUrlacl(_settings.GetAddress()); Lazurite.Windows.Server.Utils.NetshAllowPort(_settings.Port); _server.Restart(null); btApply.IsEnabled = false; } catch (Exception exception) { _warningHandler.Error("Во время применения настроек сервера произошла ошибка", exception); } }; Refresh(); }