private async Task ApplyApi( AdminApi api, string key ) {
     ApiKey = key;
     _api = api;
     _api.Key = key;
     SetControls( true );
     await UpdateProcesses().ConfigureAwait( true );
 }
 public SettingsMethods( AdminApi api ) : base( api._server, "Admin/Settings/" ) { _api = api; }
 public AdminProcessMethods( AdminApi api ) : base( api._server, "Admin/Process/" ) { _api = api; }
 public LogMethods( AdminApi api ) : base( api._server, "Admin/Log/" ) { _api = api; }
        private async void smenuStartMonitorServer_Click( object sender, EventArgs e ) {
            using ( var frmStartHm = new FrmStartHm() ) {
                if ( frmStartHm.ShowDialog() != DialogResult.OK ) return;

                bool checkResult;
                var key = frmStartHm.Key;

                var api = new AdminApi( frmStartHm.Server );
                try {
                    checkResult = await api.Settings.CheckKey( key ).ConfigureAwait( true );
                }
                catch ( Exception ex ) {
                    MessageBox.Show( "Failed to get response from server", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error );
                    statusServer.Text = "Disconnected";
                    return;
                }

                if ( checkResult) { 
                    await ApplyApi( api, key ).ConfigureAwait( true );
                    statusServer.Text = $"Managing {frmStartHm.Server}";
                }
                else {
                    MessageBox.Show( "Wrong pass", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error );
                    statusServer.Text = "Disconnected";
                }
            }
        }