diff --git a/SkyTeam/AdminDashBoard.xaml b/SkyTeam/AdminDashBoard.xaml
index e194db2..f38f63f 100644
--- a/SkyTeam/AdminDashBoard.xaml
+++ b/SkyTeam/AdminDashBoard.xaml
@@ -105,6 +105,7 @@
+
@@ -124,12 +125,50 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SkyTeam/AdminDashBoard.xaml.cs b/SkyTeam/AdminDashBoard.xaml.cs
index 731c981..d48b537 100644
--- a/SkyTeam/AdminDashBoard.xaml.cs
+++ b/SkyTeam/AdminDashBoard.xaml.cs
@@ -2,6 +2,7 @@
using System.Data;
using System.Windows;
using System.Windows.Controls;
+using System.Windows.Navigation;
using MySql.Data.MySqlClient;
namespace SkyTeam
@@ -37,7 +38,6 @@ namespace SkyTeam
if (MessageBox.Show($"User {uid} löschen?", "Confirm", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
{
-
ExecuteSql($"DELETE FROM users WHERE Id={uid}");
LoadUsers();
UserBookingsGrid.ItemsSource = null;
@@ -46,8 +46,12 @@ namespace SkyTeam
private void LoadFlights()
{
- string q = @"SELECT f.Id, f.Flugnummer, f.Abflugort, f.Zielort, f.Abflugdatum, f.Preis, z.Modell AS Plane, CONCAT(p.Vorname, ' ', p.Nachname) AS Pilot
- FROM fluege f JOIN flugzeuge z ON f.FlugzeugId = z.Id JOIN piloten p ON f.PilotId = p.Id ORDER BY f.Abflugdatum DESC";
+ string q = @"SELECT f.Id, f.Flugnummer, f.Abflugort, f.Zielort, f.Abflugdatum, f.Preis,
+ z.Modell AS Plane, CONCAT(p.Vorname, ' ', p.Nachname) AS Pilot
+ FROM fluege f
+ JOIN flugzeuge z ON f.FlugzeugId = z.Id
+ JOIN piloten p ON f.PilotId = p.Id
+ ORDER BY f.Abflugdatum DESC";
BindGrid(q, AllFlightsGrid);
}
@@ -64,17 +68,19 @@ namespace SkyTeam
private void AddFlight_Click(object sender, RoutedEventArgs e)
{
- if (string.IsNullOrWhiteSpace(AddFromTxt.Text) || string.IsNullOrWhiteSpace(AddToTxt.Text) || AddDatePick.SelectedDate == null || PlaneCombo.SelectedValue == null || PilotCombo.SelectedValue == null)
+
+ if (string.IsNullOrWhiteSpace(AddFromCombo.Text) ||
+ string.IsNullOrWhiteSpace(AddToCombo.Text) ||
+ AddDatePick.SelectedDate == null ||
+ PlaneCombo.SelectedValue == null ||
+ PilotCombo.SelectedValue == null)
{
MessageBox.Show("Bitte alle Felder ausfüllen.");
return;
}
int creatorId = SessionManager.CurrentUserId;
- if (creatorId == 0)
- {
- creatorId = 1;
- }
+ if (creatorId == 0) creatorId = 1;
string flightNum = "SYJ-" + new Random().Next(100, 999);
string query = @"INSERT INTO fluege (Abflugort, Zielort, Abflugdatum, Ankunftsdatum, Flugnummer, Preis, FlugzeugId, PilotId, ErstelltVon)
@@ -86,20 +92,19 @@ namespace SkyTeam
{
conn.Open();
MySqlCommand cmd = new MySqlCommand(query, conn);
- cmd.Parameters.AddWithValue("@from", AddFromTxt.Text);
- cmd.Parameters.AddWithValue("@to", AddToTxt.Text);
+ cmd.Parameters.AddWithValue("@from", AddFromCombo.Text);
+ cmd.Parameters.AddWithValue("@to", AddToCombo.Text);
cmd.Parameters.AddWithValue("@date", AddDatePick.SelectedDate.Value);
cmd.Parameters.AddWithValue("@arr", AddDatePick.SelectedDate.Value.AddHours(4));
cmd.Parameters.AddWithValue("@fnum", flightNum);
cmd.Parameters.AddWithValue("@price", AddPriceTxt.Text);
cmd.Parameters.AddWithValue("@plane", PlaneCombo.SelectedValue);
cmd.Parameters.AddWithValue("@pilot", PilotCombo.SelectedValue);
-
cmd.Parameters.AddWithValue("@admin", creatorId);
cmd.ExecuteNonQuery();
MessageBox.Show($"Flug {flightNum} erstellt!");
- LoadFlights();
+ LoadFlights();
}
}
catch (Exception ex) { MessageBox.Show("Error: " + ex.Message); }
@@ -110,21 +115,39 @@ namespace SkyTeam
BindComboBox("SELECT Id, Modell FROM flugzeuge WHERE IstDefekt=0", PlaneCombo, "Modell", "Id");
BindComboBox("SELECT Id, CONCAT(Vorname, ' ', Nachname) AS FullName FROM piloten WHERE IstVerfuegbar=1", PilotCombo, "FullName", "Id");
}
+
private void BindGrid(string q, DataGrid g)
{
try { using (var c = new MySqlConnection(DatenbankServices.GetConnection())) { c.Open(); var a = new MySqlDataAdapter(q, c); var t = new DataTable(); a.Fill(t); g.ItemsSource = t.DefaultView; } } catch { }
}
+
private void BindComboBox(string q, ComboBox b, string d, string v)
{
try { using (var c = new MySqlConnection(DatenbankServices.GetConnection())) { c.Open(); var a = new MySqlDataAdapter(q, c); var t = new DataTable(); a.Fill(t); b.ItemsSource = t.DefaultView; b.DisplayMemberPath = d; b.SelectedValuePath = v; } } catch { }
}
+
private void ExecuteSql(string s)
{
try { using (var c = new MySqlConnection(DatenbankServices.GetConnection())) { c.Open(); new MySqlCommand(s, c).ExecuteNonQuery(); } } catch (Exception ex) { MessageBox.Show(ex.Message); }
}
- private void ShowUsers_Click(object sender, RoutedEventArgs e) { UserManagementGrid.Visibility = Visibility.Visible; FlightManagementGrid.Visibility = Visibility.Collapsed; }
- private void ShowFlights_Click(object sender, RoutedEventArgs e) { UserManagementGrid.Visibility = Visibility.Collapsed; FlightManagementGrid.Visibility = Visibility.Visible; }
- private void Logout_Click(object sender, RoutedEventArgs e) { SessionManager.CurrentUserId = 0; NavigationService.Navigate(new LogInPage()); }
+ private void ShowUsers_Click(object sender, RoutedEventArgs e)
+ {
+ UserManagementGrid.Visibility = Visibility.Visible;
+ FlightManagementGrid.Visibility = Visibility.Collapsed;
+ }
+
+ private void ShowFlights_Click(object sender, RoutedEventArgs e)
+ {
+ UserManagementGrid.Visibility = Visibility.Collapsed;
+ FlightManagementGrid.Visibility = Visibility.Visible;
+ LoadFlights();
+ }
+
+ private void Logout_Click(object sender, RoutedEventArgs e)
+ {
+ SessionManager.CurrentUserId = 0;
+ NavigationService.Navigate(new LogInPage());
+ }
}
}
\ No newline at end of file
diff --git a/SkyTeam/BuchungenPage.xaml b/SkyTeam/BuchungenPage.xaml
index 73e6df5..a3dc60c 100644
--- a/SkyTeam/BuchungenPage.xaml
+++ b/SkyTeam/BuchungenPage.xaml
@@ -26,24 +26,28 @@
-