From 8544d5c30a700cc1907827d1aa8a2c0ad0510eb4 Mon Sep 17 00:00:00 2001 From: Marcus Date: Thu, 25 Sep 2025 14:04:37 +0200 Subject: [PATCH] =?UTF-8?q?Bug=20behoben=20dass=20Parkkartenantrag=20nicht?= =?UTF-8?q?=20f=C3=BCr=20unregistrierte=20funktioniert=20hat=20FailSafes?= =?UTF-8?q?=20f=C3=BCr=20gridRowArrivals,damit=20es=20nicht=20au=C3=9Ferha?= =?UTF-8?q?lb=20sein=20kann=20illegalAccess=20Log=20eingebaut=20Bug=20des?= =?UTF-8?q?=20Splashscreens=20behoben,=20sodass=20die=20Animation=20jetzt?= =?UTF-8?q?=20immer=20mittig=20ist=20parkausweisantrag=20und=20mcfit=20ant?= =?UTF-8?q?rag:=20Fenster=20zentriert=20kartenausgabe:=20wenn=20keine=20te?= =?UTF-8?q?lnr=20bei=20der=202.+=20Person=20angegeben=20wird,=20wird=20die?= =?UTF-8?q?=20von=20der=201.=20Person=20hinterlegt=20Styling=20f=C3=BCr=20?= =?UTF-8?q?unregistrierte=20modernisiert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ZKuP/AddCardUser.xaml.cs | 8 ++ ZKuP/Helper.cs | 23 ++++- ZKuP/MainWindow.xaml | 143 +++-------------------------- ZKuP/MainWindow.xaml.cs | 27 ++++-- ZKuP/ParkausweisDisclaimer.xaml.cs | 1 + ZKuP/RoleManager.cs | 12 ++- ZKuP/SQL.cs | 8 +- 7 files changed, 78 insertions(+), 144 deletions(-) diff --git a/ZKuP/AddCardUser.xaml.cs b/ZKuP/AddCardUser.xaml.cs index d09ad66..3386a39 100644 --- a/ZKuP/AddCardUser.xaml.cs +++ b/ZKuP/AddCardUser.xaml.cs @@ -34,6 +34,7 @@ namespace ZKuP byte[] _signature = null; string _ap = ""; bool _needTel = true; + string _neededTel = ""; DispatcherTimer blinkTimer = new DispatcherTimer(); @@ -199,6 +200,11 @@ namespace ZKuP { try { + if (!string.IsNullOrWhiteSpace(_neededTel)) + { + _neededTel = tbTelnr.Text; + } + var sig = new Signature(Signature.DisclaimerType.Rot, tbUser.Text, tbTelnr.Text); if (sig.ShowDialog() == false) @@ -207,6 +213,8 @@ namespace ZKuP if (_signature != null) { + var tel = !string.IsNullOrWhiteSpace(tbTelnr.Text) ? tbTelnr.Text : _neededTel; + SQL.WriteSQL($"REPLACE INTO karten (kartennr,farbe,benutzer,telnr,AusgegebenDurch,AusgegebenTimestamp,Ansprechpartner,Signature) VALUES ('{tbNummer.Text}','{cbColor.SelectedValue.ToString()}','{tbUser.Text}','{tbTelnr.Text}','{Environment.UserName}','{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}','{_ap}',@signature)", _signature); MessageBox.Show(this, "Karte erfolgreich verknüpft", "Erfolg", MessageBoxButton.OK, MessageBoxImage.Information); diff --git a/ZKuP/Helper.cs b/ZKuP/Helper.cs index c861247..bbc4014 100644 --- a/ZKuP/Helper.cs +++ b/ZKuP/Helper.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Management; using System.Net; using System.Net.NetworkInformation; +using System.Net.Sockets; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -37,7 +38,7 @@ namespace ZKuP { public static double width = 0; public static double height = 0; - public static double scale = 0; + public static double scale = 1; public static bool? IsFileLocked(FileInfo file) { try @@ -987,6 +988,26 @@ namespace ZKuP } } + + public static string GetIPAddresses() + { + + return string.Join(";",Dns.GetHostAddresses("")); + +//IPAddress[] hostAddresses = + //foreach (IPAddress hostAddress in hostAddresses) + //{ + // if (hostAddress.AddressFamily == AddressFamily.InterNetwork && + // !IPAddress.IsLoopback(hostAddress) && // ignore loopback addresses + // !hostAddress.ToString().StartsWith("169.254.")) // ignore link-local addresses + // return hostAddress; + //} + //return null; // or IPAddress.None if you prefer + } + + + + private static Mutex _mutex; internal static void CheckIfMultipleInstances() { diff --git a/ZKuP/MainWindow.xaml b/ZKuP/MainWindow.xaml index 0267756..52d4f99 100644 --- a/ZKuP/MainWindow.xaml +++ b/ZKuP/MainWindow.xaml @@ -270,7 +270,7 @@ - + - + + + - - + + - - + + + - + diff --git a/ZKuP/MainWindow.xaml.cs b/ZKuP/MainWindow.xaml.cs index c86aecd..73f82ef 100644 --- a/ZKuP/MainWindow.xaml.cs +++ b/ZKuP/MainWindow.xaml.cs @@ -4,6 +4,7 @@ using FuzzySharp; using MahApps.Metro.Controls; using Microsoft.Toolkit.Uwp.Notifications; using MySql.Data.MySqlClient; +using MySql.Data.Types; using System; using System.Collections.Generic; using System.ComponentModel; @@ -43,7 +44,7 @@ namespace ZKuP PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } - public const string Version = "5.2.0.0"; + public const string Version = "5.2.1.0"; //public static Roles LoggedInRole { get; private set; } = Roles.None; internal static MainWindow main; ThemeManager TM; @@ -364,6 +365,7 @@ namespace ZKuP private async void AuthenticateUser() { + if (!await SQL.TestConnection()) { MessageBox.Show("Verbindung zum Server fehlgeschlagen\nBitte Netzwerkverbindung prüfen\n\nAnwendung wird jetzt beendet", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); @@ -375,6 +377,12 @@ namespace ZKuP { if (!Thread.CurrentPrincipal.Identity.IsAuthenticated) { + var cmd = new MySqlCommand($"INSERT INTO {MainWindow.table}.illegalAccess (IP, UserName, Domain) VALUES (@pIP, @pUserName, @pDomain)"); + cmd.Parameters.Add(new MySqlParameter("pIP", Helper.GetIPAddresses())); + cmd.Parameters.Add(new MySqlParameter("pUserName", Environment.UserName)); + cmd.Parameters.Add(new MySqlParameter("pDomain", Environment.UserDomainName)); + await SQL.WriteSQL(cmd, false); + MessageBox.Show($"Ihr User {Environment.UserName} ist nicht zum Zugriff berechtigt", "Zugriff verweigert"); Dispatcher.Invoke(() => Application.Current.Shutdown()); return; @@ -410,17 +418,17 @@ namespace ZKuP if (res == MessageBoxResult.Yes) { - RM.BesucherCreateStart(); + await Dispatcher.BeginInvoke(new Action(() => RM.BesucherCreateStart())); return; } else if (res == MessageBoxResult.No) { - Application.Current.Shutdown(); + await Dispatcher.BeginInvoke(new Action(() => Application.Current.Shutdown())); return; } - Application.Current.Shutdown(); + await Dispatcher.BeginInvoke(new Action(() => Application.Current.Shutdown())); return; } @@ -572,6 +580,8 @@ namespace ZKuP gridToday.ColumnDefinitions[2].Width = new GridLength(col2Width, GridUnitType.Star); // Index 1 ist der GridSplitter mit Auto-Breite + if (gridRowTop.Height.Value > .8 * this.Height) + gridRowTop.Height = new GridLength((this.ActualHeight - 160 - 190) / (Helper.scale == 0 ? 1 : Helper.scale)); ReadyToSavePosition = true; gridSpinner.Visibility = Visibility.Hidden; @@ -709,6 +719,8 @@ namespace ZKuP this.Width = 1624; this.Height = 747; + + gridRowTop.Height = new GridLength((this.ActualHeight - 160 - 190) / (Helper.scale == 0 ? 1 : Helper.scale)); } private void MainWindow_SkullWindow(object sender, ExecutedRoutedEventArgs e) @@ -1391,7 +1403,7 @@ namespace ZKuP private async Task getMcFitCards() { var avail = await SQL.ReadSingleValueAsync($"SELECT 5-sum(AktuellAusgegeben) FROM {MainWindow.table}.mcFit"); - Dispatcher.Invoke(() => { lblmcfit.Text = lblmcfit2.Text = $"Aktuell verfügbare McFit Karten: {avail} von 5"; }); + Dispatcher.Invoke(() => { lblmcfit.Text = $"Aktuell verfügbare McFit Karten: {avail} von 5"; }); } internal async Task getFahrzeuge() @@ -1505,6 +1517,7 @@ namespace ZKuP { Family fam = new Family(); fam.Owner = this; + fam.WindowStartupLocation = WindowStartupLocation.CenterScreen; fam.ShowDialog(); getToday(); @@ -2217,6 +2230,7 @@ namespace ZKuP { ParkausweisDisclaimer Pd = new ParkausweisDisclaimer(); Pd.Owner = this; + Pd.WindowStartupLocation = WindowStartupLocation.CenterScreen; Pd.ShowDialog(); } @@ -2224,6 +2238,7 @@ namespace ZKuP { CreateMcFitUser cMFu = new CreateMcFitUser(); cMFu.Owner = this; + cMFu.WindowStartupLocation = WindowStartupLocation.CenterScreen; cMFu.ShowDialog(); } @@ -2612,7 +2627,7 @@ namespace ZKuP if (splitterPosition.Y > ((this.ActualHeight - 190) / Helper.scale)) { e.Handled = true; // Bewegung stoppen - gridRowTop.Height = new GridLength((this.ActualHeight - 160 - 190) / Helper.scale); + gridRowTop.Height = new GridLength((this.ActualHeight - 160 - 190) / (Helper.scale == 0 ? 1 : Helper.scale)); } } diff --git a/ZKuP/ParkausweisDisclaimer.xaml.cs b/ZKuP/ParkausweisDisclaimer.xaml.cs index a4ccb5b..f5943d2 100644 --- a/ZKuP/ParkausweisDisclaimer.xaml.cs +++ b/ZKuP/ParkausweisDisclaimer.xaml.cs @@ -38,6 +38,7 @@ namespace ZKuP CreateParkausweis cPa = new CreateParkausweis(); //cPa.Owner = this; + cPa.WindowStartupLocation = WindowStartupLocation.CenterScreen; cPa.ShowDialog(); } else diff --git a/ZKuP/RoleManager.cs b/ZKuP/RoleManager.cs index f41ce0e..6d146af 100644 --- a/ZKuP/RoleManager.cs +++ b/ZKuP/RoleManager.cs @@ -487,7 +487,7 @@ namespace ZKuP main.tbSearchArrived.Visibility = Visibility.Collapsed; main.btnClearSearchArrived.Visibility = Visibility.Collapsed; - main.lblmcfit2.Visibility = Visibility.Collapsed; + //main.lblmcfit2.Visibility = Visibility.Collapsed; //btnNotification.Visibility = Visibility.Collapsed; } @@ -504,8 +504,11 @@ namespace ZKuP main.Main.Visibility = Visibility.Collapsed; - main.Width = 700; - main.Height = 700; + main.MinWidth = 600; + main.MinHeight = 450; + + main.Width = 600; + main.Height = 450; main.ResizeMode = ResizeMode.NoResize; main.Main.Visibility = Visibility.Collapsed; @@ -543,7 +546,8 @@ namespace ZKuP main.tbSearchArrived.Visibility = Visibility.Collapsed; main.btnClearSearchArrived.Visibility = Visibility.Collapsed; - main.lblmcfit2.Visibility = Visibility.Visible; + main.btnDarkMode.Visibility = Visibility.Collapsed; + //main.lblmcfit2.Visibility = Visibility.Visible; //btnNotification.Visibility = Visibility.Collapsed; } diff --git a/ZKuP/SQL.cs b/ZKuP/SQL.cs index 6017800..f6ea653 100644 --- a/ZKuP/SQL.cs +++ b/ZKuP/SQL.cs @@ -418,9 +418,9 @@ namespace ZKuP return list; } - public static async Task WriteSQL(string SQLQuery) + public static async Task WriteSQL(string SQLQuery, bool withOnlineCheck = true) { - if (SQL.isOnline) + if (SQL.isOnline || !withOnlineCheck) { var conn = GetConnection(); @@ -536,9 +536,9 @@ namespace ZKuP } } - public static async Task WriteSQL(MySqlCommand mySqlCommand) + public static async Task WriteSQL(MySqlCommand mySqlCommand, bool withOnlineCheck = true) { - if (SQL.isOnline) + if (SQL.isOnline || !withOnlineCheck) { var conn = GetConnection();