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;
private void BlinkTimer_Tick(object sender, EventArgs e)
{
if (up)
Dispatcher.Invoke(() =>
{
if (borderKartenleser.Opacity < 1)
borderKartenleser.Opacity += 0.05;
if (up)
{
if (borderKartenleser.Opacity < 1)
borderKartenleser.Opacity += 0.05;
else
up = !up;
}
else
up = !up;
}
else
{
if (borderKartenleser.Opacity > 0)
borderKartenleser.Opacity -= 0.05;
else
up = !up;
}
{
if (borderKartenleser.Opacity > 0)
borderKartenleser.Opacity -= 0.05;
else
up = !up;
}
});
}
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}'");
Dispatcher.Invoke(() =>
switch (farbe)
{
switch (farbe)
{
case "1":
cbColor.SelectedValue = "Rot";
break;
case "2":
cbColor.SelectedValue = "Grün";
break;
}
});
case "1":
cbColor.SelectedValue = "Rot";
break;
case "2":
cbColor.SelectedValue = "Grün";
break;
}
}
});
}
private void tbNummer_TextChanged(object sender, TextChangedEventArgs e)
{
if (tbNummer.Text.Length <= 0)
Dispatcher.Invoke(() =>
{
borderKartenleser.Visibility = Visibility.Visible;
blinkTimer.Start();
}
else
{
borderKartenleser.Visibility = Visibility.Collapsed;
blinkTimer.Stop();
}
if (tbNummer.Text.Length <= 0)
{
borderKartenleser.Visibility = Visibility.Visible;
blinkTimer.Start();
}
else
{
borderKartenleser.Visibility = Visibility.Collapsed;
blinkTimer.Stop();
}
});
}
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))
MessageBox.Show(this, "Kartennummer angeben!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
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
if (string.IsNullOrWhiteSpace(tbNummer.Text))
MessageBox.Show(this, "Kartennummer angeben!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
else if (!cardExists)
{
var sig = new Signature(Signature.DisclaimerType.Rot, tbUser.Text, tbTelnr.Text);
if (sig.ShowDialog() == false)
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
{
_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();
this.Close();
MessageBox.Show(this, "Karte erfolgreich verknüpft", "Erfolg", MessageBoxButton.OK, MessageBoxImage.Information);
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()
{
tbNummer.Text = "";
tbTelnr.Text = "";
Dispatcher.Invoke(() =>
{
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);
System.Diagnostics.Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\ZKuPUpdater.exe", $"\"{file}\"");
Helper.serial.Close();
Helper.serial.Dispose();
Application.Current.Shutdown();
return;
}