public async Task <bool> ShutDownServer(string ip, uint port) { try { Thread.Sleep(30000); this.Clients.All.ChangeServer(ip, port); Server.ShutDown(); if (await CommunicationProxy.ConnectToServer(ip, port)) { BsaContext.Initialize(ip, BsaContext.GetUserName(), ApplicationRole.Client); MessageBox.Show("Sie sind jetz nicht mehr Server, sondern nur noch Client!"); return(true); } else { MessageBox.Show("Der Wechsel hat nicht funktioniert! Bitte starten Sie neu und verbinden sich manuell!"); Cursor.Current = Cursors.Default; return(false); } } catch (SystemException e) { return(false); } }
private async Task <bool> ConnectToServerAsync() { string ipAddress = string.Empty; var result = this.InputBox("IP angeben", "Bitte geben Sie die neue IP Adresse an", ref ipAddress); if (result == DialogResult.OK) { if (await CommunicationProxy.ConnectToServer(ipAddress, 8081) == false) { MessageBox.Show( @"Die Anwendung konnte nicht mit dem angegebenen Server verbunden werden! Bitte überprüfen Sie ihre Angaben!"); } else { return(true); } } return(false); }
public DisconnectMessageBox() { this.reconnectButton.Text = @"Erneut verbinden"; this.getServerButton.Text = @"Server werden"; this.connectOtherButton.Text = @"Mit anderem Server verbinden"; this.reconnectButton.Click += async(a, b) => { this.ChangeButtonIsEnabled(false); var success = await CommunicationProxy.ConnectToServer(BsaContext.GetURL(), 8081); if (success) { this.Close(); } this.ChangeButtonIsEnabled(true); }; this.getServerButton.Click += (a, b) => { this.ChangeButtonIsEnabled(false); if (UacHelper.RestartWithAdminRights("") == false) { this.ChangeButtonIsEnabled(true); return; } Process.GetCurrentProcess().Kill(); }; this.connectOtherButton.Click += async(a, b) => { this.ChangeButtonIsEnabled(false); var success = await this.ConnectToServerAsync(); if (success == false) { this.ChangeButtonIsEnabled(true); } else { this.Close(); } }; var l = new Label { Text = @"Die Verbindung zum Server ist getrennt. Was möchten Sie jetzt tun?" }; l.SetBounds(100, 30, 450, 50); this.reconnectButton.SetBounds(50, 100, 150, 50); this.getServerButton.SetBounds(250, 100, 150, 50); this.connectOtherButton.SetBounds(450, 100, 150, 50); this.connectOtherButton.Anchor = this.connectOtherButton.Anchor | AnchorStyles.Right; this.reconnectButton.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; this.getServerButton.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; this.Text = @"Fehler"; this.ClientSize = new Size(650, 200); this.Controls.AddRange(new Control[] { l, this.reconnectButton, this.getServerButton, this.connectOtherButton }); this.FormBorderStyle = FormBorderStyle.FixedDialog; this.StartPosition = FormStartPosition.CenterScreen; this.MinimizeBox = false; this.MaximizeBox = false; this.ShowDialog(); }