From b6bfc60ab865aeeaed8a1e1f4e0bc928e7cf8358 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Mon, 7 Jul 2025 23:39:55 +0200 Subject: [PATCH] [#57] DeliveryScheduleAdminWindow: Use Task.Run() --- Elwig/Services/DeliveryScheduleService.cs | 5 +++-- .../DeliveryScheduleAdminWindow.xaml.cs | 21 ++++++++++--------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Elwig/Services/DeliveryScheduleService.cs b/Elwig/Services/DeliveryScheduleService.cs index d47d94b..345cb43 100644 --- a/Elwig/Services/DeliveryScheduleService.cs +++ b/Elwig/Services/DeliveryScheduleService.cs @@ -152,7 +152,8 @@ namespace Elwig.Services { public static async Task UpdateDeliverySchedule(this DeliveryScheduleAdminViewModel vm, int? oldYear, int? oldDsNr) { int year = vm.Date!.Value.Year; - using (var ctx = new AppDbContext()) { + await Task.Run(async () => { + using var ctx = new AppDbContext(); var s = new DeliverySchedule { Year = oldYear ?? year, DsNr = oldDsNr ?? await ctx.NextDsNr(year), @@ -181,7 +182,7 @@ namespace Elwig.Services { .ToList(), vm.MainVarieties.Select(v => (v, 1)).Union(vm.OtherVarieties.Select(v => (v, 2))).ToList()); await ctx.SaveChangesAsync(); - } + }); App.HintContextChange(); } diff --git a/Elwig/Windows/DeliveryScheduleAdminWindow.xaml.cs b/Elwig/Windows/DeliveryScheduleAdminWindow.xaml.cs index 83443d7..11781cb 100644 --- a/Elwig/Windows/DeliveryScheduleAdminWindow.xaml.cs +++ b/Elwig/Windows/DeliveryScheduleAdminWindow.xaml.cs @@ -177,18 +177,19 @@ namespace Elwig.Windows { $"Soll der Leseplan \"{s.Description}\" vom {s.Date:dd.MM.yyyy} wirklich unwiderruflich gelöscht werden?", "Leseplan löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel); if (r == MessageBoxResult.OK) { - Mouse.OverrideCursor = Cursors.AppStarting; - try { - using (var ctx = new AppDbContext()) { + Mouse.OverrideCursor = Cursors.Wait; + await Task.Run(async () => { + try { + using var ctx = new AppDbContext(); ctx.Remove(s); await ctx.SaveChangesAsync(); + } 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; + MessageBox.Show(str, "Leseplan löschen", MessageBoxButton.OK, MessageBoxImage.Error); } - 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; - MessageBox.Show(str, "Leseplan löschen", MessageBoxButton.OK, MessageBoxImage.Error); - } + }); + App.HintContextChange(); Mouse.OverrideCursor = null; } } @@ -200,7 +201,7 @@ namespace Elwig.Windows { } private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) { - Mouse.OverrideCursor = Cursors.AppStarting; + Mouse.OverrideCursor = Cursors.Wait; SaveButton.IsEnabled = false; try {