[#57] MemberAdminWinodw: Use Task.Run()
This commit is contained in:
@ -496,34 +496,39 @@ namespace Elwig.Helpers {
|
||||
if (App.Config.Smtp == null)
|
||||
return false;
|
||||
|
||||
SmtpClient? client = null;
|
||||
try {
|
||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||
client = await GetSmtpClient();
|
||||
Mouse.OverrideCursor = Cursors.Wait;
|
||||
|
||||
using var msg = new MimeMessage();
|
||||
msg.From.Add(new MailboxAddress(App.Client.NameFull, App.Config.Smtp.Value.From));
|
||||
msg.To.AddRange(member.EmailAddresses.OrderBy(a => a.Nr).Select(a => new MailboxAddress(member.AdministrativeName, a.Address)));
|
||||
msg.Subject = subject;
|
||||
var body = new Multipart("mixed") {
|
||||
new TextPart("plain") { Text = text }
|
||||
};
|
||||
foreach (var doc in docs) {
|
||||
var name = NormalizeFileName(doc.Title);
|
||||
body.Add(doc.AsEmailAttachment($"{name}.pdf"));
|
||||
var success = await Task.Run(async () => {
|
||||
SmtpClient? client = null;
|
||||
try {
|
||||
client = await GetSmtpClient();
|
||||
|
||||
using var msg = new MimeMessage();
|
||||
msg.From.Add(new MailboxAddress(App.Client.NameFull, App.Config.Smtp.Value.From));
|
||||
msg.To.AddRange(member.EmailAddresses.OrderBy(a => a.Nr).Select(a => new MailboxAddress(member.AdministrativeName, a.Address)));
|
||||
msg.Subject = subject;
|
||||
var body = new Multipart("mixed") {
|
||||
new TextPart("plain") { Text = text }
|
||||
};
|
||||
foreach (var doc in docs) {
|
||||
var name = NormalizeFileName(doc.Title);
|
||||
body.Add(doc.AsEmailAttachment($"{name}.pdf"));
|
||||
}
|
||||
msg.Body = body;
|
||||
await client!.SendAsync(msg);
|
||||
} catch (Exception exc) {
|
||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
return false;
|
||||
} finally {
|
||||
if (client != null)
|
||||
await client.DisconnectAsync(true);
|
||||
client?.Dispose();
|
||||
}
|
||||
msg.Body = body;
|
||||
await client!.SendAsync(msg);
|
||||
} catch (Exception exc) {
|
||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
return false;
|
||||
} finally {
|
||||
if (client != null)
|
||||
await client.DisconnectAsync(true);
|
||||
client?.Dispose();
|
||||
Mouse.OverrideCursor = null;
|
||||
}
|
||||
return true;
|
||||
return true;
|
||||
});
|
||||
|
||||
Mouse.OverrideCursor = null;
|
||||
return success;
|
||||
}
|
||||
|
||||
public static async Task ExportDocument(Document doc, ExportMode mode, string? filename = null, (Member, string, string)? emailData = null) {
|
||||
|
Reference in New Issue
Block a user