From 6eaa928147a08aac81521554a95469b92b9bf554 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Mon, 7 Jul 2025 23:59:41 +0200 Subject: [PATCH] [#57] PaymentAdjustmentWindow: Use Task.Run() --- Elwig/Windows/PaymentAdjustmentWindow.xaml.cs | 64 ++++++++++--------- 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/Elwig/Windows/PaymentAdjustmentWindow.xaml.cs b/Elwig/Windows/PaymentAdjustmentWindow.xaml.cs index 41b7151..951b579 100644 --- a/Elwig/Windows/PaymentAdjustmentWindow.xaml.cs +++ b/Elwig/Windows/PaymentAdjustmentWindow.xaml.cs @@ -156,7 +156,7 @@ namespace Elwig.Windows { } private async void AutoAdjustBsButton_Click(object sender, RoutedEventArgs evt) { - Mouse.OverrideCursor = Cursors.AppStarting; + Mouse.OverrideCursor = Cursors.Wait; try { int? kg = AllowanceKgInput.Text == "" ? null : int.Parse(AllowanceKgInput.Text); double? bs = AllowanceBsInput.Text == "" ? null : double.Parse(AllowanceBsInput.Text); @@ -169,10 +169,12 @@ namespace Elwig.Windows { App.Client.AutoAdjustBs.AllowanceKgPerBs = kgPerBs; App.Client.AutoAdjustBs.AllowancePercent = percent; App.Client.AutoAdjustBs.MinBs = minBs; - await App.Client.UpdateValues(); - 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 Task.Run(async () => { + await App.Client.UpdateValues(); + 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); + }); App.HintContextChange(); } catch (Exception exc) { var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; @@ -183,10 +185,12 @@ namespace Elwig.Windows { } private async void UnAdjustBsButton_Click(object sender, RoutedEventArgs evt) { - Mouse.OverrideCursor = Cursors.AppStarting; + Mouse.OverrideCursor = Cursors.Wait; try { - var b = new Billing(Year); - await b.UnAdjustBusinessShares(); + await Task.Run(async () => { + var b = new Billing(Year); + await b.UnAdjustBusinessShares(); + }); App.HintContextChange(); } catch (Exception exc) { var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message; @@ -281,29 +285,31 @@ namespace Elwig.Windows { private async void CustomButton_Click(object sender, RoutedEventArgs evt) { if (MemberInput.SelectedItem is not Member m) return; - Mouse.OverrideCursor = Cursors.AppStarting; + Mouse.OverrideCursor = Cursors.Wait; try { - using var ctx = new AppDbContext(); - if (CustomPayments?.TryGetValue(m.MgNr, out var p) == true) { - ctx.Remove(p); - } - if (sender == SaveCustomButton) { - var modAbs = decimal.TryParse(CustomModAbsInput.Text, out var n1) ? (decimal?)n1 : null; - var modRel = decimal.TryParse(CustomModRelInput.Text, out var n2) ? (decimal?)n2 / 100 : null; - var amount = decimal.TryParse(CustomAmountInput.Text, out var n3) ? (decimal?)n3 : null; - var modText = CustomModCommentInput.Text.Trim(); - var text = CustomCommentInput.Text.Trim(); - ctx.Add(new PaymentCustom { - MgNr = m.MgNr, - Year = Year, - ModAbs = modAbs, - ModRel = modRel, - ModComment = modText == "" ? null : modText, - Amount = amount, - Comment = text == "" ? null : text, - }); - } - await ctx.SaveChangesAsync(); + await Task.Run(async () => { + using var ctx = new AppDbContext(); + if (CustomPayments?.TryGetValue(m.MgNr, out var p) == true) { + ctx.Remove(p); + } + if (sender == SaveCustomButton) { + var modAbs = decimal.TryParse(CustomModAbsInput.Text, out var n1) ? (decimal?)n1 : null; + var modRel = decimal.TryParse(CustomModRelInput.Text, out var n2) ? (decimal?)n2 / 100 : null; + var amount = decimal.TryParse(CustomAmountInput.Text, out var n3) ? (decimal?)n3 : null; + var modText = CustomModCommentInput.Text.Trim(); + var text = CustomCommentInput.Text.Trim(); + ctx.Add(new PaymentCustom { + MgNr = m.MgNr, + Year = Year, + ModAbs = modAbs, + ModRel = modRel, + ModComment = modText == "" ? null : modText, + Amount = amount, + Comment = text == "" ? null : text, + }); + } + 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;