示例#1
0
        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();
        }
示例#2
0
        public static void Show(ServerSettings settings, Action <ServerSettings> selected)
        {
            var selectView = new CertificateSelectView(settings);
            var dialogView = new DialogView(selectView);

            selectView.Selected += new Action <ServerSettings>((s) => {
                selected?.Invoke(s);
                dialogView.Close();
            });
            dialogView.Show();
        }
        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();
        }