AddCardUser: all methods to Invoke

MainWindow: Release Serial Port before Update
This commit is contained in:
Marcus 2025-09-19 12:57:41 +02:00
parent 12ce5a114d
commit 70cc898d91
2 changed files with 83 additions and 71 deletions

View File

@ -106,20 +106,23 @@ namespace ZKuP
bool up = false; bool up = false;
private void BlinkTimer_Tick(object sender, EventArgs e) private void BlinkTimer_Tick(object sender, EventArgs e)
{ {
if (up) Dispatcher.Invoke(() =>
{ {
if (borderKartenleser.Opacity < 1) if (up)
borderKartenleser.Opacity += 0.05; {
if (borderKartenleser.Opacity < 1)
borderKartenleser.Opacity += 0.05;
else
up = !up;
}
else else
up = !up; {
} if (borderKartenleser.Opacity > 0)
else borderKartenleser.Opacity -= 0.05;
{ else
if (borderKartenleser.Opacity > 0) up = !up;
borderKartenleser.Opacity -= 0.05; }
else });
up = !up;
}
} }
private void Helper_DataReceived(object sender, string e) private void Helper_DataReceived(object sender, string e)
@ -138,93 +141,100 @@ namespace ZKuP
{ {
var farbe = SQL.ReadSingleValue($"SELECT Farbe FROM {MainWindow.table}.kartennummern WHERE Kartennummer='{text}'"); var farbe = SQL.ReadSingleValue($"SELECT Farbe FROM {MainWindow.table}.kartennummern WHERE Kartennummer='{text}'");
Dispatcher.Invoke(() => switch (farbe)
{ {
switch (farbe) case "1":
{ cbColor.SelectedValue = "Rot";
case "1": break;
cbColor.SelectedValue = "Rot"; case "2":
break; cbColor.SelectedValue = "Grün";
case "2": break;
cbColor.SelectedValue = "Grün"; }
break;
}
});
} }
}); });
} }
private void tbNummer_TextChanged(object sender, TextChangedEventArgs e) private void tbNummer_TextChanged(object sender, TextChangedEventArgs e)
{ {
if (tbNummer.Text.Length <= 0) Dispatcher.Invoke(() =>
{ {
borderKartenleser.Visibility = Visibility.Visible; if (tbNummer.Text.Length <= 0)
blinkTimer.Start(); {
} borderKartenleser.Visibility = Visibility.Visible;
else blinkTimer.Start();
{ }
borderKartenleser.Visibility = Visibility.Collapsed; else
blinkTimer.Stop(); {
} borderKartenleser.Visibility = Visibility.Collapsed;
blinkTimer.Stop();
}
});
} }
private async void btnAdd_Click(object sender, RoutedEventArgs e) private async void btnAdd_Click(object sender, RoutedEventArgs e)
{ {
bool cardExists = (await SQL.RowExists($"{MainWindow.table}.kartennummern", "Kartennummer", tbNummer.Text)); Dispatcher.BeginInvoke(new Action(() =>
{
bool cardExists = (SQL.RowExists($"{MainWindow.table}.kartennummern", "Kartennummer", tbNummer.Text).Result);
if (string.IsNullOrWhiteSpace(tbNummer.Text)) if (string.IsNullOrWhiteSpace(tbNummer.Text))
MessageBox.Show(this, "Kartennummer angeben!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); MessageBox.Show(this, "Kartennummer angeben!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else if (!cardExists) else if (!cardExists)
{
MessageBox.Show("Die eingegebene Kartennummer existiert nicht!\nBitte den Kartenleser verwenden oder die Nummer auf der Rückseite des Ausweises eingeben", "Fehlerhafte Kartennummer", MessageBoxButton.OK, MessageBoxImage.Error);
}
else if (cbColor.SelectedIndex == -1)
MessageBox.Show(this, "Kartenfarbe auswählen!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else if (string.IsNullOrWhiteSpace(tbUser.Text))
MessageBox.Show(this, "Person angeben!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else if (!_isBesucher && string.IsNullOrWhiteSpace(tbFirma.Text))
MessageBox.Show(this, "Firma angeben!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else if (_needTel && string.IsNullOrWhiteSpace(tbTelnr.Text))
MessageBox.Show(this, "Telefonnummer angeben!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else
{
try
{ {
var sig = new Signature(Signature.DisclaimerType.Rot, tbUser.Text, tbTelnr.Text); MessageBox.Show("Die eingegebene Kartennummer existiert nicht!\nBitte den Kartenleser verwenden oder die Nummer auf der Rückseite des Ausweises eingeben", "Fehlerhafte Kartennummer", MessageBoxButton.OK, MessageBoxImage.Error);
}
if (sig.ShowDialog() == false) else if (cbColor.SelectedIndex == -1)
MessageBox.Show(this, "Kartenfarbe auswählen!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else if (string.IsNullOrWhiteSpace(tbUser.Text))
MessageBox.Show(this, "Person angeben!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else if (!_isBesucher && string.IsNullOrWhiteSpace(tbFirma.Text))
MessageBox.Show(this, "Firma angeben!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else if (_needTel && string.IsNullOrWhiteSpace(tbTelnr.Text))
MessageBox.Show(this, "Telefonnummer angeben!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else
{
try
{ {
_signature = sig.ResultByte; var sig = new Signature(Signature.DisclaimerType.Rot, tbUser.Text, tbTelnr.Text);
if (_signature != null) if (sig.ShowDialog() == false)
{ {
await SQL.WriteSQL($"REPLACE INTO karten (kartennr,farbe,benutzer,telnr,AusgegebenDurch,AusgegebenTimestamp,Ansprechpartner,Signature) VALUES ('{tbNummer.Text}','{cbColor.SelectedValue.ToString()}','{tbUser.Text}','{tbTelnr.Text}','{Environment.UserName}','{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}','{_ap}',@signature)", _signature); _signature = sig.ResultByte;
MessageBox.Show(this, "Karte erfolgreich verknüpft", "Erfolg", MessageBoxButton.OK, MessageBoxImage.Information); if (_signature != null)
{
SQL.WriteSQL($"REPLACE INTO karten (kartennr,farbe,benutzer,telnr,AusgegebenDurch,AusgegebenTimestamp,Ansprechpartner,Signature) VALUES ('{tbNummer.Text}','{cbColor.SelectedValue.ToString()}','{tbUser.Text}','{tbTelnr.Text}','{Environment.UserName}','{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}','{_ap}',@signature)", _signature);
ResetValues(); MessageBox.Show(this, "Karte erfolgreich verknüpft", "Erfolg", MessageBoxButton.OK, MessageBoxImage.Information);
this.Close();
ResetValues();
this.Close();
}
else MessageBox.Show("Unterschrift nicht gefunden\nVorgang bitte wiederholen");
} }
else MessageBox.Show("Unterschrift nicht gefunden\nVorgang bitte wiederholen");
}
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
if (MessageBox.Show(this, "Beim verknüpfen der Karte ist ein Fehler aufgetreten\n\nMöchten Sie die interne Fehlermeldung anzeigen?", "Fehler", MessageBoxButton.YesNo, MessageBoxImage.Error, MessageBoxResult.No) == MessageBoxResult.Yes)
MessageBox.Show(this, $"Fehlermeldung:\n\n{ex.Message}", "Fehlermeldung", MessageBoxButton.OK, MessageBoxImage.Information);
}
} }
catch (MySql.Data.MySqlClient.MySqlException ex) }));
{
if (MessageBox.Show(this, "Beim verknüpfen der Karte ist ein Fehler aufgetreten\n\nMöchten Sie die interne Fehlermeldung anzeigen?", "Fehler", MessageBoxButton.YesNo, MessageBoxImage.Error, MessageBoxResult.No) == MessageBoxResult.Yes)
MessageBox.Show(this, $"Fehlermeldung:\n\n{ex.Message}", "Fehlermeldung", MessageBoxButton.OK, MessageBoxImage.Information);
}
}
} }
private void ResetValues() private void ResetValues()
{ {
Dispatcher.Invoke(() =>
tbNummer.Text = ""; {
tbTelnr.Text = ""; tbNummer.Text = "";
tbTelnr.Text = "";
});
} }

View File

@ -238,6 +238,8 @@ namespace ZKuP
File.Copy(@"\\mhb00swfs003v.fv-werke.db.de\GLW99\ZKuP\ZKuPUpdater.exe", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\ZKuPUpdater.exe", true); File.Copy(@"\\mhb00swfs003v.fv-werke.db.de\GLW99\ZKuP\ZKuPUpdater.exe", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\ZKuPUpdater.exe", true);
System.Diagnostics.Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\ZKuPUpdater.exe", $"\"{file}\""); System.Diagnostics.Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\ZKuPUpdater.exe", $"\"{file}\"");
Helper.serial.Close();
Helper.serial.Dispose();
Application.Current.Shutdown(); Application.Current.Shutdown();
return; return;
} }