using System; using System.Windows; using System.Windows.Controls; using MySql.Data.MySqlClient; using BCrypt.Net; namespace SkyTeam { public partial class RegistrationPage : Page { public RegistrationPage() { InitializeComponent(); } private void RegisterButton_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(PasswordBox.Password)) { MessageBox.Show("Bitte geben Sie ein Passwort ein."); return; } string hashedPassword = BCrypt.Net.BCrypt.HashPassword(PasswordBox.Password); string query = "INSERT INTO users (Vorname, Nachname, Email, PasswortHash, Rolle, Stadt, Anrede, Geburtsdatum) " + "VALUES (@vorname, @nachname, @email, @password, 'User', @stadt, @anrede, @geburtsdatum)"; try { using (MySqlConnection conn = new MySqlConnection(DatenbankServices.GetConnection())) { conn.Open(); using (MySqlCommand cmd = new MySqlCommand(query, conn)) { string selectedAnrede = (SalutationComboBox.SelectedItem as ComboBoxItem)?.Content.ToString(); DateTime? selectedDate = BirthDatePicker.SelectedDate; cmd.Parameters.AddWithValue("@vorname", FirstNameTextBox.Text); cmd.Parameters.AddWithValue("@nachname", LastNameTextBox.Text); cmd.Parameters.AddWithValue("@email", EmailTextBox.Text); cmd.Parameters.AddWithValue("@password", hashedPassword); cmd.Parameters.AddWithValue("@stadt", CityTextBox.Text); cmd.Parameters.AddWithValue("@anrede", selectedAnrede ?? (object)DBNull.Value); cmd.Parameters.AddWithValue("@geburtsdatum", selectedDate.HasValue ? selectedDate.Value : (object)DBNull.Value); cmd.ExecuteNonQuery(); } } MessageBox.Show("Dein Konto wurde erfolgreich angelegt!"); if (Application.Current.MainWindow is MainWindow mainWindow) { mainWindow.MainFrame.Navigate(new LogInPage()); } } catch (Exception ex) { MessageBox.Show("Etwas ist schief gelaufen: " + ex.Message); } } private void CancelButton_Click(object sender, RoutedEventArgs e) { if (Application.Current.MainWindow is MainWindow mainWindow) { mainWindow.MainFrame.Navigate(new LogInPage()); } } } }