diff --git a/SkyTeam/Regestrieren.xaml.cs b/SkyTeam/Regestrieren.xaml.cs index 7c0c0a8..1960148 100644 --- a/SkyTeam/Regestrieren.xaml.cs +++ b/SkyTeam/Regestrieren.xaml.cs @@ -64,6 +64,11 @@ namespace SkyTeam cmd.Parameters.AddWithValue("@email", emailToCheck); cmd.Parameters.AddWithValue("@password", hashedPassword); cmd.Parameters.AddWithValue("@stadt", CityTextBox.Text); + // Quelle: Microsoft Learn - "DBNull.Value Field" +// Link: https://learn.microsoft.com/en-us/dotnet/api/system.dbnull.value +// Wenn optionale Felder (wie Anrede oder Geburtsdatum) leer bleiben, +// können wir nicht einfach 'null' in C# übergeben. Die Datenbank erwartet explizit +// das Objekt 'DBNull.Value', damit die Spalte korrekt als NULL markiert wird cmd.Parameters.AddWithValue("@anrede", selectedAnrede ?? (object)DBNull.Value); cmd.Parameters.AddWithValue("@geburtsdatum", selectedDate.HasValue ? selectedDate.Value : (object)DBNull.Value); @@ -72,7 +77,11 @@ namespace SkyTeam } MessageBox.Show("Dein Konto wurde erfolgreich angelegt!"); - +// Quelle: AI Assistant (Gemini) +// Idee: Navigation aus einer Page heraus, die in einem Frame gehostet wird. +// Kommentar: Die KI hat darauf hingewiesen, dass eine Page (wie die RegistrationPage) +// nicht direkt navigieren sollte, wenn sie im MainFrame des MainWindows liegt. +// Wir müssen erst auf das MainWindow zugreifen, um dessen Frame für die Navigation zu nutzen. if (Application.Current.MainWindow is MainWindow mainWindow) { mainWindow.MainFrame.Navigate(new LogInPage()); @@ -99,6 +108,11 @@ namespace SkyTeam try { + // Quelle: Microsoft Learn - "How to verify that strings are in valid email format" +// Link: https://learn.microsoft.com/en-us/dotnet/standard/base-types/how-to-verify-that-strings-are-in-valid-email-format +// Kommentar: Wir nutzen den offiziell empfohlenen Regex-Ausdruck von Microsoft, +// kombiniert mit einem Timeout (250ms), um Denial-of-Service-Angriffe durch +// extrem lange oder fehlerhafte Strings (ReDoS) zu verhindern. return Regex.IsMatch(email, @"^[^@\s]+@[^@\s]+\.[^@\s]+$", RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(250));