Simplify UI labels and dialogs: drop clutter, show Sonic as connected/not connected.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-31 08:19:15 +02:00
co-authored by Cursor
parent f98daec656
commit d20e0df618
8 changed files with 97 additions and 222 deletions
+35 -101
View File
@@ -155,7 +155,7 @@ namespace ZA.CoreService.ESBCertificateManager
{ {
MessageBox.Show( MessageBox.Show(
this, this,
"Während einer laufenden Aktion können die Einstellungen nicht geöffnet werden.", "Aktion läuft.",
"Einstellungen", "Einstellungen",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);
@@ -285,7 +285,7 @@ namespace ZA.CoreService.ESBCertificateManager
MessageBox.Show( MessageBox.Show(
this, this,
ex.Message, ex.Message,
"SQL-Zugriff fehlgeschlagen", "Fehler",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Error); MessageBoxIcon.Error);
} }
@@ -300,7 +300,7 @@ namespace ZA.CoreService.ESBCertificateManager
MessageBox.Show( MessageBox.Show(
this, this,
ex.Message, ex.Message,
"Konfiguration ungültig", "Konfiguration",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Warning); MessageBoxIcon.Warning);
} }
@@ -315,7 +315,7 @@ namespace ZA.CoreService.ESBCertificateManager
MessageBox.Show( MessageBox.Show(
this, this,
ex.Message, ex.Message,
"Initialisierung fehlgeschlagen", "Fehler",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Error); MessageBoxIcon.Error);
} }
@@ -561,12 +561,12 @@ namespace ZA.CoreService.ESBCertificateManager
progressPanel.Controls.Add(progressTitle); progressPanel.Controls.Add(progressTitle);
// ----------------------------- // -----------------------------
// 3. Footer unten: Einstellungen + Version // 3. Footer unten: Einstellungen
// ----------------------------- // -----------------------------
Panel footerPanel = new Panel Panel footerPanel = new Panel
{ {
Dock = DockStyle.Bottom, Dock = DockStyle.Bottom,
Height = 118, Height = 68,
Padding = new Padding(18, 8, 12, 8) Padding = new Padding(18, 8, 12, 8)
}; };
@@ -600,28 +600,8 @@ namespace ZA.CoreService.ESBCertificateManager
btnSettings.Click += async (_, _) => btnSettings.Click += async (_, _) =>
await OpenSettingsAsync(); await OpenSettingsAsync();
Label versionLabel = new Label
{
Text = "INTERNAL TOOL",
ForeColor = MutedTextColor,
Font = new Font("Segoe UI", 7.5f, FontStyle.Bold),
AutoSize = true,
Location = new Point(18, 62)
};
Label versionNumber = new Label
{
Text = "Version 0.1.0",
ForeColor = BlueColor,
Font = new Font("Segoe UI", 8),
AutoSize = true,
Location = new Point(18, 82)
};
footerPanel.Controls.Add(footerSeparator); footerPanel.Controls.Add(footerSeparator);
footerPanel.Controls.Add(btnSettings); footerPanel.Controls.Add(btnSettings);
footerPanel.Controls.Add(versionLabel);
footerPanel.Controls.Add(versionNumber);
// Dock-Reihenfolge: Bottom, Top, Top // Dock-Reihenfolge: Bottom, Top, Top
sidebar.Controls.Add(footerPanel); sidebar.Controls.Add(footerPanel);
@@ -809,27 +789,8 @@ namespace ZA.CoreService.ESBCertificateManager
Location = new Point(3, 43) Location = new Point(3, 43)
}; };
Label environmentBadge = new Label
{
Text = " UMGEBUNG ",
ForeColor = GoldColor,
BackColor = Color.FromArgb(65, 53, 17),
Font = new Font("Segoe UI", 8, FontStyle.Bold),
AutoSize = true,
Padding = new Padding(7, 6, 7, 6),
Anchor = AnchorStyles.Top | AnchorStyles.Right
};
environmentBadge.Location = new Point(900, 9);
header.Resize += (_, _) =>
{
environmentBadge.Left = header.Width - environmentBadge.Width;
};
header.Controls.Add(title); header.Controls.Add(title);
header.Controls.Add(subtitle); header.Controls.Add(subtitle);
header.Controls.Add(environmentBadge);
return header; return header;
} }
@@ -946,9 +907,8 @@ namespace ZA.CoreService.ESBCertificateManager
{ {
MessageBox.Show( MessageBox.Show(
this, this,
"Bitte wähle eine Zertifikatsdatei in einem der folgenden Formate aus:\n" + "Ungültiges Dateiformat.",
".cer, .crt, .pem, .pfx oder .p12", "Dateiformat",
"Nicht unterstütztes Dateiformat",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Warning); MessageBoxIcon.Warning);
return; return;
@@ -1012,8 +972,8 @@ namespace ZA.CoreService.ESBCertificateManager
catch (CryptographicException) catch (CryptographicException)
{ {
MessageBox.Show( MessageBox.Show(
"Das angegebene Passwort ist falsch oder die Datei ist beschädigt.", "Falsches Kennwort oder Datei beschädigt.",
"Fehler beim Lesen des Zertifikats", "Zertifikat",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Error); MessageBoxIcon.Error);
return null; return null;
@@ -1023,8 +983,8 @@ namespace ZA.CoreService.ESBCertificateManager
{ {
MessageBox.Show( MessageBox.Show(
this, this,
$"Das Zertifikat konnte nicht gelesen werden.\n\n{ex.Message}", "Zertifikat konnte nicht gelesen werden.",
"Fehler beim Lesen des Zertifikats", "Zertifikat",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Error); MessageBoxIcon.Error);
return null; return null;
@@ -1893,7 +1853,7 @@ namespace ZA.CoreService.ESBCertificateManager
SetStatus($"Vorabprüfung ok {selected.Count} Ziel(e) bereit.", isError: false); SetStatus($"Vorabprüfung ok {selected.Count} Ziel(e) bereit.", isError: false);
MessageBox.Show( MessageBox.Show(
this, this,
$"Alle Voraussetzungen sind erfüllt.\nAusgewählte Ziele: {selected.Count}", "Prüfung OK.",
"Vorabprüfung", "Vorabprüfung",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);
@@ -1927,13 +1887,9 @@ namespace ZA.CoreService.ESBCertificateManager
return; return;
} }
string targetNames = string.Join(", ", selected.Select(t =>
string.IsNullOrWhiteSpace(t.ContainerName) ? t.Name : t.ContainerName));
DialogResult confirm = MessageBox.Show( DialogResult confirm = MessageBox.Show(
this, this,
$"Container wirklich neu starten?\n\n" + "Neu starten?",
$"Ziele: {targetNames}\n\n",
"ESB neu starten", "ESB neu starten",
MessageBoxButtons.YesNo, MessageBoxButtons.YesNo,
MessageBoxIcon.Warning); MessageBoxIcon.Warning);
@@ -2053,23 +2009,9 @@ namespace ZA.CoreService.ESBCertificateManager
return; return;
} }
string targetSummary = string.Join(
Environment.NewLine,
selectedTargets.Select(target =>
$"• {target.Name}"
+ Environment.NewLine
+ $" Datei → {target.FullTargetPath}"
+ Environment.NewLine
+ $" danach Neustart: {target.ContainerName}"));
DialogResult confirm = MessageBox.Show( DialogResult confirm = MessageBox.Show(
this, this,
"Zertifikat wirklich austauschen?\n\n" "Zertifikat austauschen?",
+ "Ablauf je Ziel:\n"
+ "1) Datei kopieren (Backup der alten Datei)\n"
+ "2) Sonic-Container neu starten (MfApi)\n\n"
+ $"Quelle: {Path.GetFileName(txtCertificatePath.Text)}\n\n"
+ targetSummary,
"Austauschen + Neustart", "Austauschen + Neustart",
MessageBoxButtons.YesNo, MessageBoxButtons.YesNo,
MessageBoxIcon.Warning); MessageBoxIcon.Warning);
@@ -2370,7 +2312,7 @@ namespace ZA.CoreService.ESBCertificateManager
lblSonicStatus = new Label lblSonicStatus = new Label
{ {
ForeColor = MutedTextColor, ForeColor = MutedTextColor,
Font = new Font("Segoe UI", 8.5f), Font = new Font("Segoe UI", 9f, FontStyle.Bold),
AutoSize = true, AutoSize = true,
MaximumSize = new Size(720, 0), MaximumSize = new Size(720, 0),
Location = new Point(392, 108) Location = new Point(392, 108)
@@ -2378,8 +2320,8 @@ namespace ZA.CoreService.ESBCertificateManager
cmbSonicConnection.SelectedIndexChanged += (_, _) => RefreshSonicStatusLine(); cmbSonicConnection.SelectedIndexChanged += (_, _) => RefreshSonicStatusLine();
lblSonicStatus.Text = "Sonic-Verbindungen werden aus SQL geladen ..."; lblSonicStatus.Text = "nicht verbunden";
lblSonicStatus.ForeColor = MutedTextColor; lblSonicStatus.ForeColor = RedColor;
card.Controls.Add(sonicLabel); card.Controls.Add(sonicLabel);
card.Controls.Add(cmbSonicConnection); card.Controls.Add(cmbSonicConnection);
@@ -2390,10 +2332,7 @@ namespace ZA.CoreService.ESBCertificateManager
{ {
if (_databaseSonicConnections.Count == 0) if (_databaseSonicConnections.Count == 0)
{ {
lblSonicStatus.Text = SetSonicConnectionStatus(connected: false);
"Keine aktive Sonic-Verbindung in SQL konfiguriert.";
lblSonicStatus.ForeColor = GoldColor;
return; return;
} }
@@ -2409,40 +2348,35 @@ namespace ZA.CoreService.ESBCertificateManager
if (connection is null) if (connection is null)
{ {
lblSonicStatus.Text = SetSonicConnectionStatus(connected: false);
"Die ausgewählte SQL-Verbindung wurde nicht gefunden.";
lblSonicStatus.ForeColor = RedColor;
return; return;
} }
try try
{ {
string connectionUrl = connection.BuildConnectionUrl(); _ = connection.BuildConnectionUrl();
bool hasCredential = bool hasCredential =
_credentialsByConnectionId.TryGetValue( _credentialsByConnectionId.ContainsKey(connection.Id);
connection.Id,
out SonicCredentialProfile? credential);
string credentialInfo = hasCredential SetSonicConnectionStatus(connected: hasCredential);
? $"Profil '{credential!.CredentialName}'"
: "sichere Zugangsdaten noch nicht konfiguriert";
lblSonicStatus.Text =
$"{connection.Name}: {connectionUrl}, {credentialInfo}";
lblSonicStatus.ForeColor = hasCredential
? GreenColor
: GoldColor;
} }
catch (InvalidOperationException ex) catch (InvalidOperationException)
{ {
lblSonicStatus.Text = ex.Message; SetSonicConnectionStatus(connected: false);
lblSonicStatus.ForeColor = RedColor;
} }
} }
private void SetSonicConnectionStatus(bool connected)
{
lblSonicStatus.Text = connected
? "verbunden"
: "nicht verbunden";
lblSonicStatus.ForeColor = connected
? GreenColor
: RedColor;
}
private void Form1_Load(object sender, EventArgs e) private void Form1_Load(object sender, EventArgs e)
{ {
@@ -58,8 +58,8 @@ internal static class Program
if (!finalCheck.IsReady) if (!finalCheck.IsReady)
{ {
MessageBox.Show( MessageBox.Show(
"Die Einrichtung ist noch nicht vollständig.", "Einrichtung unvollständig.",
"Einstellungen unvollständig", "Einstellungen",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Warning); MessageBoxIcon.Warning);
@@ -73,8 +73,8 @@ internal static class Program
catch (Exception exception) catch (Exception exception)
{ {
MessageBox.Show( MessageBox.Show(
exception.ToString(), "Start fehlgeschlagen.",
"Anwendung konnte nicht gestartet werden", "Fehler",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Error); MessageBoxIcon.Error);
} }
@@ -33,9 +33,7 @@ public static class CopyableErrorDialog
Label hint = new() Label hint = new()
{ {
Text = Text = "In Zwischenablage kopiert.",
"Fehlertext ist in der Zwischenablage — "
+ "einfach hier einfügen (Strg+V).",
Location = new Point(16, 12), Location = new Point(16, 12),
AutoSize = false, AutoSize = false,
Size = new Size(608, 28), Size = new Size(608, 28),
@@ -182,7 +182,7 @@ public sealed class AddContainerForm : Form
{ {
MessageBox.Show( MessageBox.Show(
this, this,
"Bitte eine Company wählen.", "Bitte Company wählen.",
"Container", "Container",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Warning); MessageBoxIcon.Warning);
@@ -193,7 +193,7 @@ public sealed class AddContainerForm : Form
{ {
MessageBox.Show( MessageBox.Show(
this, this,
"Bitte ein Sonic-System wählen.", "Bitte System wählen.",
"Container", "Container",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Warning); MessageBoxIcon.Warning);
@@ -204,7 +204,7 @@ public sealed class AddContainerForm : Form
{ {
MessageBox.Show( MessageBox.Show(
this, this,
"Bitte einen gültigen Timeout eingeben.", "Ungültiger Timeout.",
"Container", "Container",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Warning); MessageBoxIcon.Warning);
@@ -86,9 +86,7 @@ public sealed class AddCredentialProfileForm : Form
Label details = new() Label details = new()
{ {
Text = Text =
$"Umgebung: {_system.EnvironmentCode}" $"Domain: {_system.DomainName}"
+ Environment.NewLine
+ $"Domain: {_system.DomainName}"
+ Environment.NewLine + Environment.NewLine
+ $"Adresse: {_system.ConnectionUrl}" + $"Adresse: {_system.ConnectionUrl}"
+ Environment.NewLine + Environment.NewLine
@@ -99,7 +97,7 @@ public sealed class AddCredentialProfileForm : Form
new Point(30, 62), new Point(30, 62),
Size = Size =
new Size(495, 90), new Size(495, 80),
ForeColor = ForeColor =
Color.FromArgb(169, 184, 200) Color.FromArgb(169, 184, 200)
@@ -300,8 +298,7 @@ public sealed class AddCredentialProfileForm : Form
if (string.IsNullOrWhiteSpace(profileName)) if (string.IsNullOrWhiteSpace(profileName))
{ {
ShowWarning( ShowWarning("Profilname fehlt.");
"Bitte einen Profilnamen eingeben.");
_txtProfileName.Focus(); _txtProfileName.Focus();
return; return;
@@ -309,8 +306,7 @@ public sealed class AddCredentialProfileForm : Form
if (profileName.Length > 150) if (profileName.Length > 150)
{ {
ShowWarning( ShowWarning("Profilname zu lang.");
"Der Profilname darf maximal 150 Zeichen enthalten.");
_txtProfileName.Focus(); _txtProfileName.Focus();
return; return;
@@ -318,8 +314,7 @@ public sealed class AddCredentialProfileForm : Form
if (string.IsNullOrWhiteSpace(userName)) if (string.IsNullOrWhiteSpace(userName))
{ {
ShowWarning( ShowWarning("Benutzername fehlt.");
"Bitte einen Sonic-Benutzernamen eingeben.");
_txtUserName.Focus(); _txtUserName.Focus();
return; return;
@@ -327,8 +322,7 @@ public sealed class AddCredentialProfileForm : Form
if (userName.Length > 256) if (userName.Length > 256)
{ {
ShowWarning( ShowWarning("Benutzername zu lang.");
"Der Benutzername darf maximal 256 Zeichen enthalten.");
_txtUserName.Focus(); _txtUserName.Focus();
return; return;
@@ -336,8 +330,7 @@ public sealed class AddCredentialProfileForm : Form
if (string.IsNullOrEmpty(password)) if (string.IsNullOrEmpty(password))
{ {
ShowWarning( ShowWarning("Kennwort fehlt.");
"Bitte ein Kennwort eingeben.");
_txtPassword.Focus(); _txtPassword.Focus();
return; return;
@@ -345,8 +338,7 @@ public sealed class AddCredentialProfileForm : Form
if (password.Length > 512) if (password.Length > 512)
{ {
ShowWarning( ShowWarning("Kennwort zu lang.");
"Das Kennwort darf maximal 512 Zeichen enthalten.");
_txtPassword.Focus(); _txtPassword.Focus();
return; return;
@@ -357,8 +349,7 @@ public sealed class AddCredentialProfileForm : Form
passwordRepeat, passwordRepeat,
StringComparison.Ordinal)) StringComparison.Ordinal))
{ {
ShowWarning( ShowWarning("Kennwörter stimmen nicht überein.");
"Die eingegebenen Kennwörter stimmen nicht überein.");
_txtPasswordRepeat.Clear(); _txtPasswordRepeat.Clear();
_txtPasswordRepeat.Focus(); _txtPasswordRepeat.Focus();
@@ -400,10 +391,7 @@ public sealed class AddCredentialProfileForm : Form
{ {
MessageBox.Show( MessageBox.Show(
this, this,
"Das Benutzerprofil konnte nicht angelegt werden." "Profil konnte nicht angelegt werden.",
+ Environment.NewLine
+ Environment.NewLine
+ exception.Message,
"Benutzerprofil", "Benutzerprofil",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Error); MessageBoxIcon.Error);
@@ -51,9 +51,7 @@ public sealed class AddSonicSystemForm : Form
Label subtitle = new() Label subtitle = new()
{ {
Text = Text = "Management-Verbindung für Container-Neustarts",
$"Umgebung {_coordinator.Settings.EnvironmentCode} · " +
"Management-Verbindung für Container-Neustarts",
Location = new Point(30, 58), Location = new Point(30, 58),
AutoSize = true, AutoSize = true,
ForeColor = SettingsUi.Muted ForeColor = SettingsUi.Muted
@@ -130,7 +128,7 @@ public sealed class AddSonicSystemForm : Form
{ {
MessageBox.Show( MessageBox.Show(
this, this,
"Bitte einen gültigen Port eingeben.", "Ungültiger Port.",
"Sonic-System", "Sonic-System",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Warning); MessageBoxIcon.Warning);
@@ -284,7 +284,7 @@ public sealed class AddTargetPathForm : Form
{ {
MessageBox.Show( MessageBox.Show(
this, this,
"Bitte ein Neustart-Ziel (Sonic-Container) wählen.", "Bitte Ziel wählen.",
"Zertifikat-Pfad", "Zertifikat-Pfad",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Warning); MessageBoxIcon.Warning);
@@ -313,8 +313,7 @@ public sealed class AddTargetPathForm : Form
{ {
MessageBox.Show( MessageBox.Show(
this, this,
_lastProbe?.Message "Prüfung fehlgeschlagen.",
?? "Pfad konnte nicht geprüft werden.",
"Zertifikat-Pfad", "Zertifikat-Pfad",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Warning); MessageBoxIcon.Warning);
@@ -325,8 +324,7 @@ public sealed class AddTargetPathForm : Form
{ {
DialogResult confirm = MessageBox.Show( DialogResult confirm = MessageBox.Show(
this, this,
"Am Ziel liegt noch keine Zertifikatsdatei.\n\n" "Datei fehlt. Trotzdem speichern?",
+ "Pfad trotzdem speichern?",
"Datei fehlt", "Datei fehlt",
MessageBoxButtons.YesNo, MessageBoxButtons.YesNo,
MessageBoxIcon.Question); MessageBoxIcon.Question);
@@ -23,7 +23,6 @@ public sealed class SetupWizardForm : Form
private Label _lblCertificate = null!; private Label _lblCertificate = null!;
private Label _lblDatabase = null!; private Label _lblDatabase = null!;
private Label _lblSelection = null!; private Label _lblSelection = null!;
private Label _lblEnvironmentBadge = null!;
private ListView _lvSystems = null!; private ListView _lvSystems = null!;
private ListView _lvContainers = null!; private ListView _lvContainers = null!;
@@ -105,20 +104,8 @@ public sealed class SetupWizardForm : Form
Font = new Font("Segoe UI Semibold", 20f, FontStyle.Bold) Font = new Font("Segoe UI Semibold", 20f, FontStyle.Bold)
}; };
_lblEnvironmentBadge = new Label
{
Text = _coordinator.Settings.EnvironmentCode,
Location = new Point(22, 95),
AutoSize = true,
Padding = new Padding(10, 4, 10, 4),
BackColor = Color.FromArgb(40, 208, 171, 57),
ForeColor = SettingsUi.Gold,
Font = new Font("Segoe UI Semibold", 9f, FontStyle.Bold)
};
_sidebar.Controls.Add(brand); _sidebar.Controls.Add(brand);
_sidebar.Controls.Add(brandSub); _sidebar.Controls.Add(brandSub);
_sidebar.Controls.Add(_lblEnvironmentBadge);
string[] navItems = string[] navItems =
[ [
@@ -129,7 +116,7 @@ public sealed class SetupWizardForm : Form
"Profile" "Profile"
]; ];
int y = 150; int y = 120;
foreach (string item in navItems) foreach (string item in navItems)
{ {
@@ -692,7 +679,7 @@ public sealed class SetupWizardForm : Form
{ {
MessageBox.Show( MessageBox.Show(
this, this,
"Bitte zuerst einen Zertifikat-Pfad in der Liste wählen.", "Bitte auswählen.",
"Pfad prüfen", "Pfad prüfen",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);
@@ -715,7 +702,7 @@ public sealed class SetupWizardForm : Form
MessageBox.Show( MessageBox.Show(
this, this,
result.Message + "\n\n" + target.FullTargetPath, result.Success ? "Pfad OK." : "Prüfung fehlgeschlagen.",
"Pfad prüfen", "Pfad prüfen",
MessageBoxButtons.OK, MessageBoxButtons.OK,
icon); icon);
@@ -799,7 +786,7 @@ public sealed class SetupWizardForm : Form
return; return;
} }
await AfterSystemSavedAsync(createdId, created: true); await AfterSystemSavedAsync(createdId);
} }
private async Task EditSelectedSystemAsync() private async Task EditSelectedSystemAsync()
@@ -809,7 +796,7 @@ public sealed class SetupWizardForm : Form
{ {
MessageBox.Show( MessageBox.Show(
this, this,
"Bitte zuerst ein Sonic-System in der Liste wählen.", "Bitte auswählen.",
"System bearbeiten", "System bearbeiten",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);
@@ -824,7 +811,7 @@ public sealed class SetupWizardForm : Form
return; return;
} }
await AfterSystemSavedAsync(savedId, created: false); await AfterSystemSavedAsync(savedId);
} }
private async Task DeleteSelectedSystemAsync() private async Task DeleteSelectedSystemAsync()
@@ -834,7 +821,7 @@ public sealed class SetupWizardForm : Form
{ {
MessageBox.Show( MessageBox.Show(
this, this,
"Bitte zuerst ein Sonic-System in der Liste wählen.", "Bitte auswählen.",
"System löschen", "System löschen",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);
@@ -843,11 +830,7 @@ public sealed class SetupWizardForm : Form
DialogResult confirm = MessageBox.Show( DialogResult confirm = MessageBox.Show(
this, this,
"Sonic-System wirklich aus der Konfiguration entfernen?\n\n" "System entfernen?",
+ $"{system.ConnectionName}\n"
+ $"{system.ConnectionUrl}\n\n"
+ "Zugehörige Container und Pfade verschwinden aus den Listen. "
+ "Der Eintrag wird in SQL nur deaktiviert (IsActive=0).",
"System löschen", "System löschen",
MessageBoxButtons.YesNo, MessageBoxButtons.YesNo,
MessageBoxIcon.Warning); MessageBoxIcon.Warning);
@@ -870,7 +853,7 @@ public sealed class SetupWizardForm : Form
MessageBox.Show( MessageBox.Show(
this, this,
$"System Id {system.SonicConnectionId} wurde deaktiviert.", "Entfernt.",
"System gelöscht", "System gelöscht",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);
@@ -881,7 +864,7 @@ public sealed class SetupWizardForm : Form
} }
} }
private async Task AfterSystemSavedAsync(int systemId, bool created) private async Task AfterSystemSavedAsync(int systemId)
{ {
await LoadSystemsListAsync(); await LoadSystemsListAsync();
await LoadSystemsAsync(); await LoadSystemsAsync();
@@ -895,9 +878,7 @@ public sealed class SetupWizardForm : Form
if (!visible) if (!visible)
{ {
ShowError( ShowError("Speichern fehlgeschlagen.");
$"{(created ? "Anlage" : "Update")}-Prüfung fehlgeschlagen: "
+ $"System-Id {systemId} ist nach dem Speichern nicht in der Liste.");
return; return;
} }
@@ -909,10 +890,8 @@ public sealed class SetupWizardForm : Form
MessageBox.Show( MessageBox.Show(
this, this,
created "Gespeichert.",
? $"System wurde gespeichert und geprüft (Id {systemId})." "OK",
: $"System wurde aktualisiert und geprüft (Id {systemId}).",
"Prüfung OK",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);
} }
@@ -935,7 +914,7 @@ public sealed class SetupWizardForm : Form
return; return;
} }
await AfterContainerSavedAsync(createdId, created: true); await AfterContainerSavedAsync(createdId);
} }
private async Task EditSelectedContainerAsync() private async Task EditSelectedContainerAsync()
@@ -945,7 +924,7 @@ public sealed class SetupWizardForm : Form
{ {
MessageBox.Show( MessageBox.Show(
this, this,
"Bitte zuerst einen Container in der Liste wählen.", "Bitte auswählen.",
"Container bearbeiten", "Container bearbeiten",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);
@@ -963,7 +942,7 @@ public sealed class SetupWizardForm : Form
return; return;
} }
await AfterContainerSavedAsync(savedId, created: false); await AfterContainerSavedAsync(savedId);
} }
private async Task DeleteSelectedContainerAsync() private async Task DeleteSelectedContainerAsync()
@@ -973,25 +952,16 @@ public sealed class SetupWizardForm : Form
{ {
MessageBox.Show( MessageBox.Show(
this, this,
"Bitte zuerst einen Container in der Liste wählen.", "Bitte auswählen.",
"Container löschen", "Container löschen",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);
return; return;
} }
string display =
string.IsNullOrWhiteSpace(container.ContainerDisplayName)
? container.ContainerName
: container.ContainerDisplayName;
DialogResult confirm = MessageBox.Show( DialogResult confirm = MessageBox.Show(
this, this,
"Container wirklich aus der Konfiguration entfernen?\n\n" "Container entfernen?",
+ $"{container.CompanyCode} / {display}\n"
+ $"System: {container.ConnectionName}\n\n"
+ "Zugehörige Zertifikat-Pfade verschwinden aus der Liste. "
+ "Der Eintrag wird in SQL nur deaktiviert (IsActive=0).",
"Container löschen", "Container löschen",
MessageBoxButtons.YesNo, MessageBoxButtons.YesNo,
MessageBoxIcon.Warning); MessageBoxIcon.Warning);
@@ -1012,7 +982,7 @@ public sealed class SetupWizardForm : Form
MessageBox.Show( MessageBox.Show(
this, this,
$"Container Id {container.SonicContainerId} wurde deaktiviert.", "Entfernt.",
"Container gelöscht", "Container gelöscht",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);
@@ -1023,7 +993,7 @@ public sealed class SetupWizardForm : Form
} }
} }
private async Task AfterContainerSavedAsync(int containerId, bool created) private async Task AfterContainerSavedAsync(int containerId)
{ {
await LoadContainersListAsync(); await LoadContainersListAsync();
await LoadSystemsListAsync(); await LoadSystemsListAsync();
@@ -1037,9 +1007,7 @@ public sealed class SetupWizardForm : Form
if (!visible) if (!visible)
{ {
ShowError( ShowError("Speichern fehlgeschlagen.");
$"{(created ? "Anlage" : "Update")}-Prüfung fehlgeschlagen: "
+ $"Container-Id {containerId} ist nach dem Speichern nicht in der Liste.");
return; return;
} }
@@ -1051,10 +1019,8 @@ public sealed class SetupWizardForm : Form
MessageBox.Show( MessageBox.Show(
this, this,
created "Gespeichert.",
? $"Container wurde gespeichert und geprüft (Id {containerId})." "OK",
: $"Container wurde aktualisiert und geprüft (Id {containerId}).",
"Prüfung OK",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);
} }
@@ -1077,7 +1043,7 @@ public sealed class SetupWizardForm : Form
return; return;
} }
await AfterPathSavedAsync(createdId, created: true); await AfterPathSavedAsync(createdId);
} }
private async Task EditSelectedPathAsync() private async Task EditSelectedPathAsync()
@@ -1087,7 +1053,7 @@ public sealed class SetupWizardForm : Form
{ {
MessageBox.Show( MessageBox.Show(
this, this,
"Bitte zuerst einen Zertifikat-Pfad in der Liste wählen.", "Bitte auswählen.",
"Pfad bearbeiten", "Pfad bearbeiten",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);
@@ -1105,10 +1071,10 @@ public sealed class SetupWizardForm : Form
return; return;
} }
await AfterPathSavedAsync(savedId, created: false); await AfterPathSavedAsync(savedId);
} }
private async Task AfterPathSavedAsync(int pathId, bool created) private async Task AfterPathSavedAsync(int pathId)
{ {
await LoadPathsListAsync(); await LoadPathsListAsync();
await RefreshAllAsync(); await RefreshAllAsync();
@@ -1121,9 +1087,7 @@ public sealed class SetupWizardForm : Form
if (!visible) if (!visible)
{ {
ShowError( ShowError("Speichern fehlgeschlagen.");
$"{(created ? "Anlage" : "Update")}-Prüfung fehlgeschlagen: "
+ $"Pfad-Id {pathId} ist nach dem Speichern nicht in der Liste.");
return; return;
} }
@@ -1135,10 +1099,8 @@ public sealed class SetupWizardForm : Form
MessageBox.Show( MessageBox.Show(
this, this,
created "Gespeichert.",
? $"Zertifikat-Pfad wurde gespeichert und geprüft (Id {pathId})." "OK",
: $"Zertifikat-Pfad wurde aktualisiert und geprüft (Id {pathId}).",
"Prüfung OK",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);
} }
@@ -1150,7 +1112,7 @@ public sealed class SetupWizardForm : Form
{ {
MessageBox.Show( MessageBox.Show(
this, this,
"Bitte zuerst einen Zertifikat-Pfad in der Liste wählen.", "Bitte auswählen.",
"Pfad löschen", "Pfad löschen",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);
@@ -1159,10 +1121,7 @@ public sealed class SetupWizardForm : Form
DialogResult confirm = MessageBox.Show( DialogResult confirm = MessageBox.Show(
this, this,
"Zertifikat-Pfad wirklich aus der Konfiguration entfernen?\n\n" "Pfad entfernen?",
+ $"{target.FullTargetPath}\n\n"
+ "Die Datei auf dem Server bleibt unverändert. "
+ "Der Eintrag wird in SQL nur deaktiviert (IsActive=0).",
"Pfad löschen", "Pfad löschen",
MessageBoxButtons.YesNo, MessageBoxButtons.YesNo,
MessageBoxIcon.Warning); MessageBoxIcon.Warning);
@@ -1182,7 +1141,7 @@ public sealed class SetupWizardForm : Form
MessageBox.Show( MessageBox.Show(
this, this,
$"Pfad Id {target.CertificateTargetId} wurde deaktiviert.", "Entfernt.",
"Pfad gelöscht", "Pfad gelöscht",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);
@@ -1255,7 +1214,7 @@ public sealed class SetupWizardForm : Form
{ {
if (_cmbSystem.SelectedItem is not SonicSystemOption system) if (_cmbSystem.SelectedItem is not SonicSystemOption system)
{ {
ShowWarning("Bitte zuerst ein Sonic-System auswählen."); ShowWarning("Bitte auswählen.");
return; return;
} }
@@ -1283,7 +1242,7 @@ public sealed class SetupWizardForm : Form
MessageBox.Show( MessageBox.Show(
this, this,
"Profil geladen. Jetzt „Auswahl übernehmen“ klicken.", "Profil geladen.",
"Benutzerprofil", "Benutzerprofil",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);
@@ -1352,13 +1311,13 @@ public sealed class SetupWizardForm : Form
{ {
if (_cmbSystem.SelectedItem is not SonicSystemOption system) if (_cmbSystem.SelectedItem is not SonicSystemOption system)
{ {
ShowWarning("Bitte ein Sonic-System auswählen."); ShowWarning("Bitte System wählen.");
return; return;
} }
if (_cmbCredential.SelectedItem is not SonicCredentialProfile profile) if (_cmbCredential.SelectedItem is not SonicCredentialProfile profile)
{ {
ShowWarning("Bitte ein Benutzerprofil auswählen."); ShowWarning("Bitte Profil wählen.");
return; return;
} }
@@ -1366,7 +1325,7 @@ public sealed class SetupWizardForm : Form
MessageBox.Show( MessageBox.Show(
this, this,
"Auswahl gespeichert.", "Gespeichert.",
"Einstellungen", "Einstellungen",
MessageBoxButtons.OK, MessageBoxButtons.OK,
MessageBoxIcon.Information); MessageBoxIcon.Information);