ZKuP/ZKuP/CreateParkausweis.xaml.cs
2025-07-28 08:20:11 +02:00

601 lines
27 KiB
C#

using MahApps.Metro.Controls;
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace ZKuP
{
/// <summary>
/// Interaktionslogik für CreateParkausweis.xaml
/// </summary>
public partial class CreateParkausweis : MetroWindow
{
List<string> plz = new List<string>();
public bool special { get; private set; }
List<string> Abteilungen = new List<string>()
{
"P.FBW-M",
"P.FBW-M 1",
"P.FBW-M 11",
"P.FBW-M 2",
"P.FBW-M 21",
"P.FBW-M 23",
"P.FBW-M 3",
"P.FBW-M 313",
"P.FBW-M 314",
"P.FBW-M 315",
"P.FBW-M 32",
"P.FBW-M 33",
"P.FBW-M 34",
"P.FBW-M 341",
"P.FBW-M 342",
"P.FBW-M 35",
"P.FBW-M 4",
"P.FBW-M 41",
"P.FBW-M 411",
"P.FBW-M 43",
"P.FBW-M 431",
"P.FBW-M 432",
"P.FBW-M 433",
"P.FBW-M 44",
"P.FBW-M 441",
"P.FBW-M 443",
"P.FBW-M 45",
"P.FBW-M 451",
"P.FBW-M 453",
"P.FBW-M 46",
"P.FBW-M 461",
"P.FBW-M 465",
"P.FBW-M 5",
"P.FBW-M 52",
"P.FBW-M 6",
"P.FBW-M 61",
"P.FBW-M 7",
"P.FBW-M 73",
"P.FBW-M 731",
"P.FBW-M 74",
"P.FBW-M 742"
};
public CreateParkausweis(bool Special = false)
{
InitializeComponent();
special = Special;
//if(special)
//{
// CommentRow.Height = new GridLength(2, GridUnitType.Star);
// MinWidth = 360;
// MinHeight = 850;
// Width = 360;
// Height = 850;
//}
//else
//{
// CommentRow.Height = new GridLength(0, GridUnitType.Star);
// MinWidth = 330;
// MinHeight = 707;
// Width = 330;
// Height = 707;
//}
rbDKennzeichen.Checked += rbDKennzeichen_Checked;
//var uri = new Uri("pack://application:,,,/Resources/PLZ_MUC.txt");
//var resourceStream = Application.GetResourceStream(uri);
//using (var reader = new System.IO.StreamReader(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("ZKuP.Resources.PLZ_MUC.txt")))
//{
// plz = reader.ReadToEnd().Replace("\r", "").Split('\n').ToList();
//}
}
private void Textboxes_Changed(object sender, TextChangedEventArgs e)
{
if (System.Text.RegularExpressions.Regex.IsMatch(tbAdresse.Text, @"^.+\s{1}\d+\s*\w*"))
{
tbAdresse.SetResourceReference(Control.ForegroundProperty, SystemColors.ControlTextBrushKey);
//tbAdresse.Foreground = new SolidColorBrush(Colors.Black);
}
if (System.Text.RegularExpressions.Regex.IsMatch(tbEmail.Text, @"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$"))
{
tbEmail.SetResourceReference(Control.ForegroundProperty, SystemColors.ControlTextBrushKey);
//tbEmail.Foreground = new SolidColorBrush(Colors.Black);
}
if (tbTelefon.Text.ToList<char>().Distinct().Count() > 4)
{
tbTelefon.SetResourceReference(Control.ForegroundProperty, SystemColors.ControlTextBrushKey);
//tbTelefon.Foreground = new SolidColorBrush(Colors.Black);
}
checkButton();
}
private void checkButton()
{
if (special)
btnCreate.IsEnabled = true;
else
{
if (
tbVorname.Text != "" &&
tbNachname.Text != "" &&
tbEmail.Text != "" &&
tbAbteilung.Text != "" &&
tbTelefon.Text != "" &&
tbAdresse.Text != "" &&
tbPLZ.Text != "" &&
tbVorgesetzter.Text != "" &&
cbFirma.SelectedIndex != -1 &&
cBCorrectness.IsChecked.Value == true &&
//cBSchicht.IsChecked.Value == true &&
(rbDKennzeichen.IsChecked.Value && (!string.IsNullOrWhiteSpace(tbDTownKennzeichen.Text)
&& !string.IsNullOrWhiteSpace(tbDCharsKennzeichen.Text)
&& !string.IsNullOrWhiteSpace(tbDDigitsKennzeichen.Text))
||
(rbOtherKennzeichen.IsChecked.Value &&
!string.IsNullOrWhiteSpace(tbOtherKennzeichen.Text)))
||
(rbVersKennzeichen.IsChecked.Value &&
!string.IsNullOrWhiteSpace(tbVersKennzeichen1.Text) &&
!string.IsNullOrWhiteSpace(tbVersKennzeichen2.Text))
)
btnCreate.IsEnabled = true;
else btnCreate.IsEnabled = false;
//tbTelefon != "";
}
}
private void tbPLZ_TextChanged(object sender, TextChangedEventArgs e)
{
if (tbPLZ.Text.Length == 5 && !special)
{
//foreach (var s in plz)
//{
// if (tbPLZ.Text == s)
// {
// MessageBox.Show(this, "Mitarbeiter im Stadtgebiet München sind nicht berechtigt Parkkarten zu beantragen!\n\nDie Angabe falscher Daten stellt einen fristlosen Kündigungsgrund dar!!", "Keine Berechtigung!", MessageBoxButton.OK, MessageBoxImage.Information);
// tbPLZ.Text = "";
// btnCreate.IsEnabled = false;
// return;
// }
//}
checkButton();
}
else btnCreate.IsEnabled = false;
}
private async void btnCreate_Click(object sender, RoutedEventArgs e)
{
if (tbTelefon.Text.ToList<char>().Distinct().Count() < 4)
{
MessageBox.Show("Telefonnummer muss qualifiziert ausgefüllt werden!", "Fehlerhafte Nummer", MessageBoxButton.OK, MessageBoxImage.Error);
return;
}
if (!System.Text.RegularExpressions.Regex.IsMatch(tbPLZ.Text, @"^\d{5}$"))
{
MessageBox.Show(this, "Postleitzahl muss exakt 5 Stellen haben und darf nur Zahlen enthalten", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
return;
}
if(rbDKennzeichen.IsChecked.Value &&
(string.IsNullOrWhiteSpace(tbDTownKennzeichen.Text) ||
(string.IsNullOrWhiteSpace(tbDCharsKennzeichen.Text) ||
string.IsNullOrWhiteSpace(tbDDigitsKennzeichen.Text))))
{
MessageBox.Show(this, "Kennzeichen muss vollständig ausgefüllt sein", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
return;
}
if(rbOtherKennzeichen.IsChecked.Value &&
string.IsNullOrWhiteSpace(tbOtherKennzeichen.Text))
{
MessageBox.Show(this, "Kennzeichen muss ausgefüllt sein", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
return;
}
if (rbVersKennzeichen.IsChecked.Value &&
string.IsNullOrWhiteSpace(tbVersKennzeichen1.Text) &&
string.IsNullOrWhiteSpace(tbVersKennzeichen2.Text))
{
MessageBox.Show(this, "Kennzeichen muss vollständig ausgefüllt sein", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
return;
}
if (!System.Text.RegularExpressions.Regex.IsMatch(tbEmail.Text, @"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$"))
{
MessageBox.Show(this, "Email nicht vollständig oder falsches Format", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
return;
}
if(!System.Text.RegularExpressions.Regex.IsMatch(tbAdresse.Text, @"^.+\s{1}\d+\s*\w*"))
{
MessageBox.Show(this, "Adresse nicht vollständig oder falsches Format\n\nFormat: Straße Leerzeichen Hausnummer Zusatz(wenn vorhanden)", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
return;
}
if (!(string.IsNullOrWhiteSpace(tbVorname.Text) &&
string.IsNullOrWhiteSpace(tbNachname.Text) &&
string.IsNullOrWhiteSpace(tbEmail.Text) &&
string.IsNullOrWhiteSpace(tbTelefon.Text) &&
string.IsNullOrWhiteSpace(tbAbteilung.Text) &&
string.IsNullOrWhiteSpace(tbAdresse.Text) &&
string.IsNullOrWhiteSpace(tbPLZ.Text) &&
string.IsNullOrWhiteSpace(tbVorgesetzter.Text) &&
//!cBSchicht.IsChecked.Value &&
!cBCorrectness.IsChecked.Value)
|| special)
{
int _schicht = 0, _correctness = 0;
string _bemerkung = "Erstellt durch ZKuP";
//if (cBSchicht.IsChecked.Value) _schicht = 1;
if (cBCorrectness.IsChecked.Value) _correctness = 1;
if (!string.IsNullOrWhiteSpace(tbBemerkung.Text)) _bemerkung = tbBemerkung.Text;
var isKrad = rbPKW.IsChecked.Value ? 0 : 1;
if (rbOtherKennzeichen.IsChecked.Value)
{
//await SQL.WriteSQL($"INSERT INTO {MainWindow.table}.`parkausweise` (MA_Vorname,MA_Name,Kennzeichen,Email,Telefon,Abteilung,Firma,Adresse,PLZ,Vorgesetzter,AcceptedCorrectness,Schicht,Bemerkung,isKrad) VALUES ('{tbVorname.Text}','{tbNachname.Text}','{tbOtherKennzeichen.Text}','{tbEmail.Text}','{tbTelefon.Text}','{tbAbteilung.Text}','{cbFirma.Text}','{tbAdresse.Text}','{tbPLZ.Text}','{tbVorgesetzter.Text}','{_correctness}','{_schicht}','{_bemerkung}',{isKrad})");
await SQL.CreateAndWriteSQL($"INSERT INTO {MainWindow.table}.`parkausweise` (MA_Vorname,MA_Name,Kennzeichen,Email,Telefon,Abteilung,Firma,Adresse,PLZ,Vorgesetzter,AcceptedCorrectness,Schicht,Bemerkung,isKrad) VALUES (@tbVorname,@tbNachname,@tbOtherKennzeichen,@tbEmail,@tbTelefon,@tbAbteilung,@cbFirma,@tbAdresse,@tbPLZ,@tbVorgesetzter,@_correctness,@_schicht,@_bemerkung,@isKrad)", new List<MySqlParameter>()
{
new MySqlParameter("@tbVorname", tbVorname.Text),
new MySqlParameter("@tbNachname", tbNachname.Text),
new MySqlParameter("@tbOtherKennzeichen", tbOtherKennzeichen.Text),
new MySqlParameter("@tbEmail", tbEmail.Text),
new MySqlParameter("@tbTelefon", tbTelefon.Text),
new MySqlParameter("@tbAbteilung", tbAbteilung.Text),
new MySqlParameter("@cbFirma", cbFirma.Text),
new MySqlParameter("@tbAdresse", tbAdresse.Text),
new MySqlParameter("@tbPLZ", tbPLZ.Text),
new MySqlParameter("@tbVorgesetzter", tbVorgesetzter.Text),
new MySqlParameter("@_correctness", _correctness),
new MySqlParameter("@_schicht", _schicht),
new MySqlParameter("@_bemerkung", _bemerkung),
new MySqlParameter("@isKrad", isKrad)
});
var id = SQL.ReadSingleValue($"SELECT idparkausweise FROM {MainWindow.table}.parkausweise ORDER BY idparkausweise DESC LIMIT 1");
var name = SQL.ReadSingleValue($"SELECT MA_Name FROM {MainWindow.table}.parkausweise WHERE idparkausweise={id}");
if (name == tbNachname.Text)
{
MessageBox.Show(this, $"Antrag erfolgreich abgeschickt\n\nIhre Karte hat die Nr. {id}", "Erfolg", MessageBoxButton.OK, MessageBoxImage.Information);
this.Close();
}
else
{
MessageBox.Show(this, $"Antrag konnte nicht gesendet werden, bitte erneut versuchen\n\nSollte der Fehler weiterhin auftreten, bitte an Ihren Administrator wenden", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
return;
}
}
else if (rbDKennzeichen.IsChecked.Value)
{
//await SQL.WriteSQL($"INSERT INTO {MainWindow.table}.parkausweise (MA_Vorname,MA_Name,Kennzeichen,Email,Telefon,Abteilung,Firma,Adresse,PLZ,Vorgesetzter,AcceptedCorrectness,Schicht,Bemerkung,isKrad) VALUES ('{tbVorname.Text}','{tbNachname.Text}','{tbDTownKennzeichen.Text}-{tbDCharsKennzeichen.Text} {tbDDigitsKennzeichen.Text}','{tbEmail.Text}','{tbTelefon.Text}','{tbAbteilung.Text}','{cbFirma.Text}','{tbAdresse.Text}','{tbPLZ.Text}','{tbVorgesetzter.Text}','{_correctness}','{_schicht}','{_bemerkung}',{isKrad})");
await SQL.CreateAndWriteSQL($"INSERT INTO {MainWindow.table}.parkausweise (MA_Vorname,MA_Name,Kennzeichen,Email,Telefon,Abteilung,Firma,Adresse,PLZ,Vorgesetzter,AcceptedCorrectness,Schicht,Bemerkung,isKrad) VALUES (@tbVorname,@tbNachname,@Kennzeichen,@tbEmail,@tbTelefon,@tbAbteilung,@cbFirma,@tbAdresse,@tbPLZ,@tbVorgesetzter,@_correctness,@_schicht,@_bemerkung,@isKrad)", new List<MySqlParameter>()
{
new MySqlParameter("@tbVorname", tbVorname.Text),
new MySqlParameter("@tbNachname", tbNachname.Text),
new MySqlParameter("@Kennzeichen", $"{tbDTownKennzeichen.Text}-{tbDCharsKennzeichen.Text} {tbDDigitsKennzeichen.Text}"),
new MySqlParameter("@tbEmail", tbEmail.Text),
new MySqlParameter("@tbTelefon", tbTelefon.Text),
new MySqlParameter("@tbAbteilung", tbAbteilung.Text),
new MySqlParameter("@cbFirma", cbFirma.Text),
new MySqlParameter("@tbAdresse", tbAdresse.Text),
new MySqlParameter("@tbPLZ", tbPLZ.Text),
new MySqlParameter("@tbVorgesetzter", tbVorgesetzter.Text),
new MySqlParameter("@_correctness", _correctness),
new MySqlParameter("@_schicht", _schicht),
new MySqlParameter("@_bemerkung", _bemerkung),
new MySqlParameter("@isKrad", isKrad)
});
var id = SQL.ReadSingleValue($"SELECT idparkausweise FROM {MainWindow.table}.parkausweise ORDER BY idparkausweise DESC LIMIT 1");
var name = SQL.ReadSingleValue($"SELECT MA_Name FROM {MainWindow.table}.parkausweise WHERE idparkausweise={id}");
if (name == tbNachname.Text)
{
MessageBox.Show(this, $"Antrag erfolgreich abgeschickt\n\nIhre Karte hat die Nr. {id}", "Erfolg", MessageBoxButton.OK, MessageBoxImage.Information);
this.Close();
}
else
{
MessageBox.Show(this, $"Antrag konnte nicht gesendet werden, bitte erneut versuchen\n\nSollte der Fehler weiterhin auftreten, bitte an Ihren Administrator wenden", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
return;
}
}
else if (rbVersKennzeichen.IsChecked.Value)
{
//await SQL.WriteSQL($"INSERT INTO {MainWindow.table}.parkausweise (MA_Vorname,MA_Name,Kennzeichen,Email,Telefon,Abteilung,Firma,Adresse,PLZ,Vorgesetzter,AcceptedCorrectness,Schicht,Bemerkung,isKrad) VALUES ('{tbVorname.Text}','{tbNachname.Text}','{tbVersKennzeichen1.Text} {tbVersKennzeichen2.Text}','{tbEmail.Text}','{tbTelefon.Text}','{tbAbteilung.Text}','{cbFirma.Text}','{tbAdresse.Text}','{tbPLZ.Text}','{tbVorgesetzter.Text}','{_correctness}','{_schicht}','{_bemerkung}',{isKrad})");
await SQL.CreateAndWriteSQL($"INSERT INTO {MainWindow.table}.parkausweise (MA_Vorname,MA_Name,Kennzeichen,Email,Telefon,Abteilung,Firma,Adresse,PLZ,Vorgesetzter,AcceptedCorrectness,Schicht,Bemerkung,isKrad) VALUES (@tbVorname,@tbNachname,@tbVersKennzeichen,@tbEmail,@tbTelefon,@tbAbteilung,@cbFirma,@tbAdresse,@tbPLZ,@tbVorgesetzter,@_correctness,@_schicht,@_bemerkung,@isKrad)", new List<MySqlParameter>()
{
new MySqlParameter("@tbVorname", tbVorname.Text),
new MySqlParameter("@tbNachname", tbNachname.Text),
new MySqlParameter("@tbVersKennzeichen", $"{tbVersKennzeichen1.Text} {tbVersKennzeichen2.Text}"),
new MySqlParameter("@tbEmail", tbEmail.Text),
new MySqlParameter("@tbTelefon", tbTelefon.Text),
new MySqlParameter("@tbAbteilung", tbAbteilung.Text),
new MySqlParameter("@cbFirma", cbFirma.Text),
new MySqlParameter("@tbAdresse", tbAdresse.Text),
new MySqlParameter("@tbPLZ", tbPLZ.Text),
new MySqlParameter("@tbVorgesetzter", tbVorgesetzter.Text),
new MySqlParameter("@_correctness", _correctness),
new MySqlParameter("@_schicht", _schicht),
new MySqlParameter("@_bemerkung", _bemerkung),
new MySqlParameter("@isKrad", isKrad)
});
var id = SQL.ReadSingleValue($"SELECT idparkausweise FROM {MainWindow.table}.parkausweise ORDER BY idparkausweise DESC LIMIT 1");
var name = SQL.ReadSingleValue($"SELECT MA_Name FROM {MainWindow.table}.parkausweise WHERE idparkausweise={id}");
if (name == tbNachname.Text)
{
MessageBox.Show(this, $"Antrag erfolgreich abgeschickt\n\nIhre Karte hat die Nr. {id}", "Erfolg", MessageBoxButton.OK, MessageBoxImage.Information);
this.Close();
}
else
{
MessageBox.Show(this, $"Antrag konnte nicht gesendet werden, bitte erneut versuchen\n\nSollte der Fehler weiterhin auftreten, bitte an Ihren Administrator wenden", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
return;
}
}
}
else MessageBox.Show(this, "Es müssen alle benötigten(*) Felder ausgefüllt werden", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
}
private void cBCorrectness_Unchecked(object sender, RoutedEventArgs e)
{
btnCreate.IsEnabled = false;
}
private void cBCorrectness_Checked(object sender, RoutedEventArgs e)
{
checkButton();
}
private void cBSchicht_Checked(object sender, RoutedEventArgs e)
{
checkButton();
}
private void cBSchicht_Unchecked(object sender, RoutedEventArgs e)
{
if(!special) btnCreate.IsEnabled = false;
}
private void tbPLZ_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
if ((sender as TextBox).Text.Length >= 5)
{
e.Handled = true;
return;
}
if (!System.Text.RegularExpressions.Regex.IsMatch(e.Text, "^[0-9]*$"))
{
e.Handled = true;
return;
}
}
private void tbPLZ_TextInput(object sender, TextCompositionEventArgs e)
{
if ((sender as TextBox).Text.Length >= 5)
{
e.Handled = true;
return;
}
if (!System.Text.RegularExpressions.Regex.IsMatch(e.Text, "^[0-9]*$"))
{
e.Handled = true;
return;
}
}
private void TextBoxes_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key != Key.OemComma)
{
e.Handled = false;
return;
}
else
{
MessageBox.Show(this, "Komma (',') ist ein nicht erlaubtes Zeichen", "Achtung", MessageBoxButton.OK, MessageBoxImage.Information);
e.Handled = true;
}
return;
}
private void tbPLZ_PreviewExecuted(object sender, ExecutedRoutedEventArgs e)
{
if (e.Command == ApplicationCommands.Paste)
{
e.Handled = true;
}
}
private void rbDKennzeichen_Checked(object sender, RoutedEventArgs e)
{
tbOtherKennzeichen.Visibility = Visibility.Collapsed;
spVersKennzeichen.Visibility = Visibility.Collapsed;
spDKennzeichen.Visibility = Visibility.Visible;
}
private void rbOtherKennzeichen_Checked(object sender, RoutedEventArgs e)
{
if (MessageBox.Show(this, "Diese Funktion darf nicht für deutsche Kennzeichen genutzt werden\nDie Kennzeichen werden überprüft und bei deutschem Kennzeichen abgelehnt\n\nMöchten Sie sicher ein ausländisches Kennzeichen eingeben?", "Achtung!", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No) == MessageBoxResult.Yes)
{
spDKennzeichen.Visibility = Visibility.Collapsed;
spVersKennzeichen.Visibility = Visibility.Collapsed;
tbOtherKennzeichen.Visibility = Visibility.Visible;
}
else
{
rbDKennzeichen.IsChecked = true;
}
}
private void rbVersKennzeichen_Checked(object sender, RoutedEventArgs e)
{
tbOtherKennzeichen.Visibility = Visibility.Collapsed;
spDKennzeichen.Visibility = Visibility.Collapsed;
spVersKennzeichen.Visibility = Visibility.Visible;
}
private void tbDTownKennzeichen_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
if ((sender as TextBox).Text.Length >= 3)
{
e.Handled = true;
return;
}
if (!System.Text.RegularExpressions.Regex.IsMatch(e.Text, "^[A-ZÄÖÜ]?[A-ZÄÖÜ]?[A-ZÄÖÜ]?"))
{
e.Handled = true;
return;
}
}
private void tbDCharsKennzeichen_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
if ((sender as TextBox).Text.Length >= 2)
{
e.Handled = true;
return;
}
if (!System.Text.RegularExpressions.Regex.IsMatch(e.Text, "^[A-ZÄÖÜ]?[A-ZÄÖÜ]?"))
{
e.Handled = true;
return;
}
}
private void tbDDigitsKennzeichen_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
if ((sender as TextBox).Text.Length >= 5)
{
e.Handled = true;
return;
}
if (!System.Text.RegularExpressions.Regex.IsMatch(e.Text, "^[0-9]*$"))
{
e.Handled = true;
return;
}
}
private void tbAdresse_PreviewLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
if (!System.Text.RegularExpressions.Regex.IsMatch(tbAdresse.Text, @"^.+\s{1}\d+\s*\w*"))
{
tbAdresse.Foreground = new SolidColorBrush(Colors.Red);
tbAdresse.ToolTip = "Adresse nicht vollständig oder falsches Format";
}
else
{
tbAdresse.SetResourceReference(Control.ForegroundProperty, SystemColors.ControlTextBrushKey);
//tbAdresse.Foreground = new SolidColorBrush(Colors.Black);
tbAdresse.ToolTip = "";
}
}
private void tbEmail_PreviewLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
if (!System.Text.RegularExpressions.Regex.IsMatch(tbEmail.Text, @"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$"))
{
tbEmail.Foreground = new SolidColorBrush(Colors.Red);
tbEmail.ToolTip = "Email nicht vollständig oder falsches Format";
}
else
{
tbEmail.SetResourceReference(Control.ForegroundProperty, SystemColors.ControlTextBrushKey);
//tbEmail.Foreground = new SolidColorBrush(Colors.Black);
tbEmail.ToolTip = "";
}
}
private void tbTelefon_PreviewLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
if (tbTelefon.Text.ToList<char>().Distinct().Count() < 4)
{
tbTelefon.Foreground = new SolidColorBrush(Colors.Red);
tbTelefon.ToolTip = "Telefonnummer muss qualifiziert ausgefüllt werden";
}
else
{
tbTelefon.SetResourceReference(Control.ForegroundProperty, SystemColors.ControlTextBrushKey);
//tbTelefon.Foreground = new SolidColorBrush(Colors.Black);
tbTelefon.ToolTip = "";
}
}
private void tbBemerkung_PreviewGotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
lblBemerkung.Visibility = Visibility.Collapsed;
}
private void tbBemerkung_PreviewLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
if (string.IsNullOrWhiteSpace(tbBemerkung.Text)) lblBemerkung.Visibility = Visibility.Visible;
else lblBemerkung.Visibility = Visibility.Collapsed;
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Helper.CheckWindowIsInScreenSpace(this);
}
private void Window_LocationChanged(object sender, EventArgs e)
{
Helper.CheckWindowIsInScreenSpace(this);
}
}
}