comments und quellen hinzufugt
This commit is contained in:
@@ -15,6 +15,9 @@ namespace SkyTeam
|
||||
{
|
||||
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))
|
||||
{
|
||||
@@ -49,6 +52,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,8 +70,15 @@ 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);
|
||||
|
||||
// Quelle: Im Unterricht gemacht
|
||||
cmd1.Parameters.AddWithValue("@uid", SessionManager.CurrentUserId);
|
||||
cmd1.ExecuteNonQuery();
|
||||
|
||||
@@ -85,12 +99,15 @@ namespace SkyTeam
|
||||
}
|
||||
}
|
||||
|
||||
// Quelle: Im Unterricht gemacht
|
||||
// Lambda-Ausdrücke (=>) für simple Seitenwechsel über den NavigationService
|
||||
private void HomeButton_Click(object sender, RoutedEventArgs e) => NavigationService.Navigate(new NavigationPage());
|
||||
private void BookingsButton_Click(object sender, RoutedEventArgs e) => NavigationService.Navigate(new BuchungenPage());
|
||||
private void SettingsButton_Click(object sender, RoutedEventArgs e) => NavigationService.Navigate(new SettingsPage());
|
||||
private void SettingsButton_Click(object sender, RoutedEventArgs e) => NavigationService.Navigate(new SettingsPage());
|
||||
|
||||
private void LogoutButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
SessionManager.CurrentUserId = 0;
|
||||
SessionManager.CurrentUserId = 0;
|
||||
NavigationService.Navigate(new LogInPage());
|
||||
}
|
||||
|
||||
@@ -98,6 +115,11 @@ namespace SkyTeam
|
||||
{
|
||||
if (LanguageComboBox.SelectedItem is ComboBoxItem selectedItem)
|
||||
{
|
||||
// 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
|
||||
string culture = selectedItem.Tag.ToString();
|
||||
Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
|
||||
|
||||
@@ -106,6 +128,9 @@ namespace SkyTeam
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user