From f09c43c1bd71815658fec3de4512688259b330c8 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Thu, 12 Sep 2024 11:40:32 +0200 Subject: [PATCH] App: Make HintContextChange() synchronous by using MainDispatcher --- Elwig/App.xaml.cs | 6 +++--- Elwig/Helpers/Export/ElwigData.cs | 2 +- Elwig/Services/AreaComService.cs | 2 +- Elwig/Services/DeliveryAncmtService.cs | 2 +- Elwig/Services/DeliveryScheduleService.cs | 2 +- Elwig/Services/MemberService.cs | 4 ++-- Elwig/Windows/AreaComAdminWindow.xaml.cs | 2 +- Elwig/Windows/BaseDataWindow.xaml.Season.cs | 4 ++-- Elwig/Windows/BaseDataWindow.xaml.cs | 2 +- Elwig/Windows/ChartWindow.xaml.cs | 2 +- Elwig/Windows/DeliveryAncmtAdminWindow.xaml.cs | 2 +- Elwig/Windows/DeliveryScheduleAdminWindow.xaml.cs | 2 +- Elwig/Windows/MailWindow.xaml.cs | 2 +- Elwig/Windows/MainWindow.xaml.cs | 4 ++-- Elwig/Windows/MemberAdminWindow.xaml.cs | 2 +- Elwig/Windows/OriginHierarchyWindow.xaml.cs | 4 ++-- Elwig/Windows/PaymentAdjustmentWindow.xaml.cs | 6 +++--- Elwig/Windows/PaymentVariantsWindow.xaml.cs | 14 +++++++------- 18 files changed, 32 insertions(+), 32 deletions(-) diff --git a/Elwig/App.xaml.cs b/Elwig/App.xaml.cs index 38fde09..bf58aa0 100644 --- a/Elwig/App.xaml.cs +++ b/Elwig/App.xaml.cs @@ -79,7 +79,7 @@ namespace Elwig { } private static void OnContextChanged() { - MainDispatcher.BeginInvoke(async () => await HintContextChange()); + MainDispatcher.BeginInvoke(HintContextChange); } private static void OverrideCulture() { @@ -201,13 +201,13 @@ namespace Elwig { BranchMobileNr = entry.Item8; } - public static async Task HintContextChange() { + public static void HintContextChange() { var ch = CurrentLastWrite; if (ch > CurrentApp.LastChanged) CurrentApp.LastChanged = ch; foreach (Window w in CurrentApp.Windows) { if (w is not ContextWindow c) continue; - await c.HintContextChange(); + MainDispatcher.BeginInvoke(c.HintContextChange); } } diff --git a/Elwig/Helpers/Export/ElwigData.cs b/Elwig/Helpers/Export/ElwigData.cs index 9794780..de4d7b0 100644 --- a/Elwig/Helpers/Export/ElwigData.cs +++ b/Elwig/Helpers/Export/ElwigData.cs @@ -274,7 +274,7 @@ namespace Elwig.Helpers.Export { await ctx.SaveChangesAsync(); await AddImportedFiles(Path.GetFileName(meta.FileName)); } - await App.HintContextChange(); + App.HintContextChange(); MessageBox.Show( $"Das importieren der Daten war erfolgreich!\n" + diff --git a/Elwig/Services/AreaComService.cs b/Elwig/Services/AreaComService.cs index 09b08b5..a1fd9ec 100644 --- a/Elwig/Services/AreaComService.cs +++ b/Elwig/Services/AreaComService.cs @@ -136,7 +136,7 @@ namespace Elwig.Services { } } - await App.HintContextChange(); + App.HintContextChange(); return newFbNr; } diff --git a/Elwig/Services/DeliveryAncmtService.cs b/Elwig/Services/DeliveryAncmtService.cs index ad5350a..4175a1e 100644 --- a/Elwig/Services/DeliveryAncmtService.cs +++ b/Elwig/Services/DeliveryAncmtService.cs @@ -125,7 +125,7 @@ namespace Elwig.Services { } } - await App.HintContextChange(); + App.HintContextChange(); return (year, dsnr, newMgNr, newSortId); } diff --git a/Elwig/Services/DeliveryScheduleService.cs b/Elwig/Services/DeliveryScheduleService.cs index 28d8d67..97c69ca 100644 --- a/Elwig/Services/DeliveryScheduleService.cs +++ b/Elwig/Services/DeliveryScheduleService.cs @@ -177,7 +177,7 @@ namespace Elwig.Services { await ctx.SaveChangesAsync(); } - await App.HintContextChange(); + App.HintContextChange(); } } } diff --git a/Elwig/Services/MemberService.cs b/Elwig/Services/MemberService.cs index fbffee0..7a6e1e4 100644 --- a/Elwig/Services/MemberService.cs +++ b/Elwig/Services/MemberService.cs @@ -338,7 +338,7 @@ namespace Elwig.Services { var b = new Billing(year); await b.FinishSeason(); await b.CalculateBuckets(); - await App.HintContextChange(); + App.HintContextChange(); using var ctx = new AppDbContext(); var data = await DeliveryConfirmationDeliveryData.ForMember(ctx.DeliveryParts, year, m); @@ -626,7 +626,7 @@ namespace Elwig.Services { } } - await App.HintContextChange(); + App.HintContextChange(); return newMgNr; } diff --git a/Elwig/Windows/AreaComAdminWindow.xaml.cs b/Elwig/Windows/AreaComAdminWindow.xaml.cs index 6352a9b..11b3909 100644 --- a/Elwig/Windows/AreaComAdminWindow.xaml.cs +++ b/Elwig/Windows/AreaComAdminWindow.xaml.cs @@ -209,7 +209,7 @@ namespace Elwig.Windows { ctx.Remove(a); await ctx.SaveChangesAsync(); } - await App.HintContextChange(); + App.HintContextChange(); } catch (Exception exc) { var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; diff --git a/Elwig/Windows/BaseDataWindow.xaml.Season.cs b/Elwig/Windows/BaseDataWindow.xaml.Season.cs index 8c578dd..9519d49 100644 --- a/Elwig/Windows/BaseDataWindow.xaml.Season.cs +++ b/Elwig/Windows/BaseDataWindow.xaml.Season.cs @@ -196,7 +196,7 @@ namespace Elwig.Windows { if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; MessageBox.Show(str, "Saison anlegen", MessageBoxButton.OK, MessageBoxImage.Error); } - await App.HintContextChange(); + App.HintContextChange(); Mouse.OverrideCursor = null; SeasonList.SelectedIndex = 0; } @@ -219,7 +219,7 @@ namespace Elwig.Windows { if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; MessageBox.Show(str, "Saison löschen", MessageBoxButton.OK, MessageBoxImage.Error); } - await App.HintContextChange(); + App.HintContextChange(); Mouse.OverrideCursor = null; } } diff --git a/Elwig/Windows/BaseDataWindow.xaml.cs b/Elwig/Windows/BaseDataWindow.xaml.cs index 0a71c1a..09357cd 100644 --- a/Elwig/Windows/BaseDataWindow.xaml.cs +++ b/Elwig/Windows/BaseDataWindow.xaml.cs @@ -340,7 +340,7 @@ namespace Elwig.Windows { LockInputs(); } - await App.HintContextChange(); + App.HintContextChange(); } private void FillInputs(ClientParameters p, Season? s) { diff --git a/Elwig/Windows/ChartWindow.xaml.cs b/Elwig/Windows/ChartWindow.xaml.cs index f320188..72c87ed 100644 --- a/Elwig/Windows/ChartWindow.xaml.cs +++ b/Elwig/Windows/ChartWindow.xaml.cs @@ -672,7 +672,7 @@ namespace Elwig.Windows { await ctx.SaveChangesAsync(); } LockContext = false; - await App.HintContextChange(); + App.HintContextChange(); } catch (Exception exc) { var str = "Der Eintrag konnte nicht in der Datenbank gespeichert werden!\n\n" + exc.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; diff --git a/Elwig/Windows/DeliveryAncmtAdminWindow.xaml.cs b/Elwig/Windows/DeliveryAncmtAdminWindow.xaml.cs index 6fcd77c..d27df58 100644 --- a/Elwig/Windows/DeliveryAncmtAdminWindow.xaml.cs +++ b/Elwig/Windows/DeliveryAncmtAdminWindow.xaml.cs @@ -313,7 +313,7 @@ namespace Elwig.Windows { ctx.Remove(a); await ctx.SaveChangesAsync(); } - await App.HintContextChange(); + App.HintContextChange(); } catch (Exception exc) { var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; diff --git a/Elwig/Windows/DeliveryScheduleAdminWindow.xaml.cs b/Elwig/Windows/DeliveryScheduleAdminWindow.xaml.cs index e8a42a9..142d494 100644 --- a/Elwig/Windows/DeliveryScheduleAdminWindow.xaml.cs +++ b/Elwig/Windows/DeliveryScheduleAdminWindow.xaml.cs @@ -177,7 +177,7 @@ namespace Elwig.Windows { ctx.Remove(s); await ctx.SaveChangesAsync(); } - await App.HintContextChange(); + App.HintContextChange(); } catch (Exception exc) { var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; diff --git a/Elwig/Windows/MailWindow.xaml.cs b/Elwig/Windows/MailWindow.xaml.cs index 900e7c2..bda5eb7 100644 --- a/Elwig/Windows/MailWindow.xaml.cs +++ b/Elwig/Windows/MailWindow.xaml.cs @@ -515,7 +515,7 @@ namespace Elwig.Windows { var b = new Billing(year); await b.FinishSeason(); await b.CalculateBuckets(); - await App.HintContextChange(); + App.HintContextChange(); dcData[year] = await DeliveryConfirmationDeliveryData.ForSeason(ctx.DeliveryParts, year); } catch (Exception exc) { diff --git a/Elwig/Windows/MainWindow.xaml.cs b/Elwig/Windows/MainWindow.xaml.cs index 177d171..b382c74 100644 --- a/Elwig/Windows/MainWindow.xaml.cs +++ b/Elwig/Windows/MainWindow.xaml.cs @@ -287,7 +287,7 @@ namespace Elwig.Windows { var b = new Billing(year); await b.FinishSeason(); await b.CalculateBuckets(); - await App.HintContextChange(); + App.HintContextChange(); using var ctx = new AppDbContext(); var tbl1 = await OverUnderDeliveryData.ForSeason(ctx.OverUnderDeliveryRows, year); @@ -326,7 +326,7 @@ namespace Elwig.Windows { var b = new Billing(year); await b.FinishSeason(); await b.CalculateBuckets(); - await App.HintContextChange(); + App.HintContextChange(); using var ctx = new AppDbContext(); using var ods = new OdsFile(d.FileName); diff --git a/Elwig/Windows/MemberAdminWindow.xaml.cs b/Elwig/Windows/MemberAdminWindow.xaml.cs index c1d4f87..8a87e0e 100644 --- a/Elwig/Windows/MemberAdminWindow.xaml.cs +++ b/Elwig/Windows/MemberAdminWindow.xaml.cs @@ -374,7 +374,7 @@ namespace Elwig.Windows { ctx.Remove(l); await ctx.SaveChangesAsync(); } - await App.HintContextChange(); + App.HintContextChange(); } catch (Exception exc) { var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; diff --git a/Elwig/Windows/OriginHierarchyWindow.xaml.cs b/Elwig/Windows/OriginHierarchyWindow.xaml.cs index 5e8e990..baa1707 100644 --- a/Elwig/Windows/OriginHierarchyWindow.xaml.cs +++ b/Elwig/Windows/OriginHierarchyWindow.xaml.cs @@ -191,7 +191,7 @@ namespace Elwig.Windows { } await ctx.SaveChangesAsync(); } - await App.HintContextChange(); + App.HintContextChange(); ControlUtils.SelectItemWithPk(WbGlKgs, k.KgNr); } catch (Exception exc) { var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; @@ -211,7 +211,7 @@ namespace Elwig.Windows { ctx.Remove(k.WbKg); await ctx.SaveChangesAsync(); } - await App.HintContextChange(); + App.HintContextChange(); ControlUtils.SelectItemWithPk(WbKgs, k.KgNr); } catch (Exception exc) { await HintContextChange(); diff --git a/Elwig/Windows/PaymentAdjustmentWindow.xaml.cs b/Elwig/Windows/PaymentAdjustmentWindow.xaml.cs index d0c79dc..41b7151 100644 --- a/Elwig/Windows/PaymentAdjustmentWindow.xaml.cs +++ b/Elwig/Windows/PaymentAdjustmentWindow.xaml.cs @@ -173,7 +173,7 @@ namespace Elwig.Windows { var b = new Billing(Year); await b.AutoAdjustBusinessShares(new DateOnly(Year, 11, 30), kg ?? default, bs ?? default, kgPerBs ?? default, percent / 100.0 ?? default, minBs ?? default); - await App.HintContextChange(); + App.HintContextChange(); } catch (Exception exc) { var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; @@ -187,7 +187,7 @@ namespace Elwig.Windows { try { var b = new Billing(Year); await b.UnAdjustBusinessShares(); - await App.HintContextChange(); + App.HintContextChange(); } catch (Exception exc) { var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; @@ -309,7 +309,7 @@ namespace Elwig.Windows { if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; MessageBox.Show(str, "Benutzerdefinierten Zu-/Abschlag speichern", MessageBoxButton.OK, MessageBoxImage.Error); } - await App.HintContextChange(); + App.HintContextChange(); Mouse.OverrideCursor = null; } } diff --git a/Elwig/Windows/PaymentVariantsWindow.xaml.cs b/Elwig/Windows/PaymentVariantsWindow.xaml.cs index e6a0e9a..065221d 100644 --- a/Elwig/Windows/PaymentVariantsWindow.xaml.cs +++ b/Elwig/Windows/PaymentVariantsWindow.xaml.cs @@ -240,7 +240,7 @@ namespace Elwig.Windows { await ctx.SaveChangesAsync(); } - await App.HintContextChange(); + App.HintContextChange(); ControlUtils.SelectItem(PaymentVariantList, v); } catch (Exception exc) { @@ -268,7 +268,7 @@ namespace Elwig.Windows { await ctx.SaveChangesAsync(); } - await App.HintContextChange(); + App.HintContextChange(); ControlUtils.SelectItem(PaymentVariantList, n); } catch (Exception exc) { @@ -285,7 +285,7 @@ namespace Elwig.Windows { ctx.Remove(v); await ctx.SaveChangesAsync(); } - await App.HintContextChange(); + App.HintContextChange(); } catch (Exception exc) { var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message; @@ -304,7 +304,7 @@ namespace Elwig.Windows { } catch (Exception exc) { MessageBox.Show(exc.Message, "Berechnungsfehler", MessageBoxButton.OK, MessageBoxImage.Error); } - await App.HintContextChange(); + App.HintContextChange(); Mouse.OverrideCursor = null; CalculateButton.IsEnabled = true; } @@ -399,7 +399,7 @@ namespace Elwig.Windows { } Mouse.OverrideCursor = null; RevertButton.IsEnabled = true; - await App.HintContextChange(); + App.HintContextChange(); } private async void RevertButton_Click(object sender, RoutedEventArgs evt) { @@ -415,7 +415,7 @@ namespace Elwig.Windows { Mouse.OverrideCursor = Cursors.AppStarting; var b = new BillingVariant(v.Year, v.AvNr); await b.Revert(); - await App.HintContextChange(); + App.HintContextChange(); Mouse.OverrideCursor = null; CommitButton.IsEnabled = true; } @@ -507,7 +507,7 @@ namespace Elwig.Windows { await ctx.SaveChangesAsync(); } - await App.HintContextChange(); + App.HintContextChange(); CommentInput_TextChanged(null, null); ConsiderModifiersInput_Changed(null, null); ConsiderPenaltiesInput_Changed(null, null);