73 lines
2.7 KiB
C#
73 lines
2.7 KiB
C#
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());
|
|
}
|
|
}
|
|
}
|
|
} |