diff --git a/SkyTeam/SettingsPage.xaml.cs b/SkyTeam/SettingsPage.xaml.cs index 7cf6d11..9892e8a 100644 --- a/SkyTeam/SettingsPage.xaml.cs +++ b/SkyTeam/SettingsPage.xaml.cs @@ -14,6 +14,9 @@ namespace SkyTeam public SettingsPage() { InitializeComponent(); + // Quelle: Stack Overflow "How to compare SolidColorBrush in WPF" +// Wir lesen die globale Ressource aus und prüfen die Farbe, um sicherzustellen, +// dass der Toggle Switch beim Wechseln der Seite den richtigen Zustand (An/Aus) anzeigt var bgBrush = Application.Current.Resources["PageBackground"] as SolidColorBrush; if (bgBrush != null && bgBrush.Color == Color.FromRgb(30, 30, 30)) @@ -48,7 +51,10 @@ namespace SkyTeam DarkModeToggle.Content = "Aus"; } - +// Quelle: AI Assistant (chat gpt) +// Idee: Refactoring / DRY-Prinzip (Don't Repeat Yourself) +// Die KI hat vorgeschlagen, das Zuweisen der Application.Current.Resources in eine +// separate Hilfsmethode auszulagern, um den Code in den Checked/Unchecked Events sauberer zu halten. private void SetRes(string key, Color color) { Application.Current.Resources[key] = new SolidColorBrush(color); @@ -63,6 +69,10 @@ namespace SkyTeam using (MySqlConnection conn = new MySqlConnection(DatenbankServices.GetConnection())) { conn.Open(); + // Quelle: Reddit - r/csharp "Best way to delete user with related data?" + // Aufgrund von Foreign Key Constraints in der Datenbank + // müssen zwingend erst die Buchungen des Users gelöscht werden, bevor der User + // selbst gelöscht werden darf. Sonst wirft die Datenbank einen Fehler string deleteBookings = "DELETE FROM buchungen WHERE UserId = @uid"; MySqlCommand cmd1 = new MySqlCommand(deleteBookings, conn); cmd1.Parameters.AddWithValue("@uid", SessionManager.CurrentUserId); @@ -93,7 +103,11 @@ namespace SkyTeam SessionManager.CurrentUserId = 0; NavigationService.Navigate(new LogInPage()); } - +// Quelle: Microsoft Learn "FlowDirection Enumeration" & Stack Overflow "WPF RTL Support" +// Link : https://learn.microsoft.com/en-us/dotnet/api/system.windows.flowdirection +// Wir setzen nicht nur die UI Culture auf die ausgewählte Sprache, sondern +// passen für Arabisch ("ar") auch dynamisch die 'FlowDirection' auf Right-To-Left an, +// damit das Layout der Seite korrekt gespiegelt wird private void LanguageComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (LanguageComboBox.SelectedItem is ComboBoxItem selectedItem) @@ -105,7 +119,9 @@ namespace SkyTeam this.FlowDirection = FlowDirection.RightToLeft; else this.FlowDirection = FlowDirection.LeftToRight; - + // Quelle: Stack Overflow "How to refresh WPF page after changing culture?" + // Durch das erneute Navigieren auf die gleiche Seite (SettingsPage) wird + // das UI gezwungen, sich mit der neu gesetzten Sprache und FlowDirection neu zu rendern NavigationService.Navigate(new SettingsPage()); } }