Compare commits

...

2 Commits

Author SHA1 Message Date
8ff576257b [#57] MailWindow: Use Task.Run()
All checks were successful
Test / Run tests (push) Successful in 2m0s
2025-07-08 00:19:00 +02:00
6eaa928147 [#57] PaymentAdjustmentWindow: Use Task.Run() 2025-07-07 23:59:41 +02:00
2 changed files with 93 additions and 81 deletions

View File

@@ -602,7 +602,7 @@ namespace Elwig.Windows {
PreviewButton.IsEnabled = false;
PrintButton.IsEnabled = false;
EmailButton.IsEnabled = false;
Mouse.OverrideCursor = Cursors.AppStarting;
Mouse.OverrideCursor = Cursors.Wait;
GenerateButton.IsEnabled = false;
DisposeDocs();
@@ -828,12 +828,13 @@ namespace Elwig.Windows {
EmailButton.IsEnabled = EmailDocuments != null && App.Config.Smtp != null;
}
private void PreviewButton_Click(object sender, RoutedEventArgs evt) {
private async void PreviewButton_Click(object sender, RoutedEventArgs evt) {
var d = new OpenFolderDialog() {
Title = "Ordner auswählen - Elwig",
};
if (d.ShowDialog() == true) {
Mouse.OverrideCursor = Cursors.AppStarting;
Mouse.OverrideCursor = Cursors.Wait;
await Task.Run(() => {
PrintDocument?.SaveTo($"{d.FolderName}/Print.pdf");
if (EmailDocuments != null) {
foreach (var (m, docs) in EmailDocuments) {
@@ -847,6 +848,7 @@ namespace Elwig.Windows {
}
}
});
Mouse.OverrideCursor = null;
Process.Start("explorer.exe", d.FolderName);
}
@@ -862,7 +864,8 @@ namespace Elwig.Windows {
var res = MessageBox.Show($"Sollen {PrintDocument.Pages} Blätter ({PrintDocument.TotalPages} Seiten) gedruckt werden?",
"Rundschreiben drucken", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);
if (res == MessageBoxResult.Yes) {
Mouse.OverrideCursor = Cursors.AppStarting;
Mouse.OverrideCursor = Cursors.Wait;
await Task.Run(async () => {
if (App.Config.Debug) {
PrintDocument.Show();
} else {
@@ -876,6 +879,7 @@ namespace Elwig.Windows {
))
);
}
});
Mouse.OverrideCursor = null;
}
@@ -893,8 +897,8 @@ namespace Elwig.Windows {
SmtpClient? client = null;
try {
Mouse.OverrideCursor = Cursors.AppStarting;
client = await Utils.GetSmtpClient();
Mouse.OverrideCursor = Cursors.Wait;
client = await Task.Run(Utils.GetSmtpClient);
Mouse.OverrideCursor = null;
var res = MessageBox.Show($"Sollen {EmailDocuments.Count:N0} E-Mails verschickt werden?",
@@ -903,9 +907,10 @@ namespace Elwig.Windows {
return;
}
Mouse.OverrideCursor = Cursors.AppStarting;
Mouse.OverrideCursor = Cursors.Wait;
var subject = EmailSubjectInput.Text;
var text = EmailBodyInput.Text;
await Task.Run(async () => {
await Utils.AddSentMailBody(subject, text, EmailDocuments.Count);
foreach (var (m, docs) in EmailDocuments) {
using var msg = new MimeMessage();
@@ -928,6 +933,7 @@ namespace Elwig.Windows {
docs.Select(d => d.Title).ToArray()
)]);
}
});
MessageBox.Show("Erfolgreich alle E-Mails verschickt!", "Rundschreiben verschicken", MessageBoxButton.OK, MessageBoxImage.Information);
} catch (Exception exc) {

View File

@@ -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();
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 {
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,8 +285,9 @@ 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 {
await Task.Run(async () => {
using var ctx = new AppDbContext();
if (CustomPayments?.TryGetValue(m.MgNr, out var p) == true) {
ctx.Remove(p);
@@ -304,6 +309,7 @@ namespace Elwig.Windows {
});
}
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;