[#57] DeliveryAncmtAdminWindow: Use Task.Run()

This commit is contained in:
2025-07-07 23:36:08 +02:00
parent 64832e9a53
commit 8aaa22fcb4
2 changed files with 34 additions and 28 deletions

View File

@ -211,7 +211,8 @@ namespace Elwig.Services {
int newMgNr = vm.MgNr!.Value; int newMgNr = vm.MgNr!.Value;
string newSortId = vm.SortId!; string newSortId = vm.SortId!;
using (var ctx = new AppDbContext()) { await Task.Run(async () => {
using var ctx = new AppDbContext();
var a = new DeliveryAncmt { var a = new DeliveryAncmt {
Year = oldYear ?? year, Year = oldYear ?? year,
DsNr = oldDsNr ?? dsnr, DsNr = oldDsNr ?? dsnr,
@ -232,7 +233,7 @@ namespace Elwig.Services {
if (oldDsNr != null && (oldYear != year || oldDsNr != dsnr || oldMgNr != newMgNr || oldSortId != newSortId)) { if (oldDsNr != null && (oldYear != year || oldDsNr != dsnr || oldMgNr != newMgNr || oldSortId != newSortId)) {
await ctx.Database.ExecuteSqlAsync($"UPDATE delivery_announcement SET year = {year}, dsnr = {dsnr}, mgnr = {newMgNr}, sortid = {newSortId} WHERE (year, dsnr, mgnr, sortid) = ({a.Year}, {a.DsNr}, {a.MgNr}, {a.SortId})"); await ctx.Database.ExecuteSqlAsync($"UPDATE delivery_announcement SET year = {year}, dsnr = {dsnr}, mgnr = {newMgNr}, sortid = {newSortId} WHERE (year, dsnr, mgnr, sortid) = ({a.Year}, {a.DsNr}, {a.MgNr}, {a.SortId})");
} }
} });
App.HintContextChange(); App.HintContextChange();
@ -269,25 +270,29 @@ namespace Elwig.Services {
Title = $"{DeliveryAncmtList.Name} speichern unter - Elwig" Title = $"{DeliveryAncmtList.Name} speichern unter - Elwig"
}; };
if (d.ShowDialog() == true) { if (d.ShowDialog() == true) {
Mouse.OverrideCursor = Cursors.AppStarting; Mouse.OverrideCursor = Cursors.Wait;
try { await Task.Run(async () => {
var data = await DeliveryAncmtListData.FromQuery(query, filterNames); try {
using var ods = new OdsFile(d.FileName); var data = await DeliveryAncmtListData.FromQuery(query, filterNames);
await ods.AddTable(data); using var ods = new OdsFile(d.FileName);
} catch (Exception exc) { await ods.AddTable(data);
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } catch (Exception exc) {
} MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
}
});
Mouse.OverrideCursor = null; Mouse.OverrideCursor = null;
} }
} else { } else {
Mouse.OverrideCursor = Cursors.AppStarting; Mouse.OverrideCursor = Cursors.Wait;
try { await Task.Run(async () => {
var data = await DeliveryAncmtListData.FromQuery(query, filterNames); try {
using var doc = new DeliveryAncmtList(string.Join(" / ", filterNames), data); var data = await DeliveryAncmtListData.FromQuery(query, filterNames);
await Utils.ExportDocument(doc, mode); using var doc = new DeliveryAncmtList(string.Join(" / ", filterNames), data);
} catch (Exception exc) { await Utils.ExportDocument(doc, mode);
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } catch (Exception exc) {
} MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
}
});
Mouse.OverrideCursor = null; Mouse.OverrideCursor = null;
} }
} }

View File

@ -317,18 +317,19 @@ namespace Elwig.Windows {
$"Soll die Anmeldung wirklich unwiderruflich gelöscht werden?", $"Soll die Anmeldung wirklich unwiderruflich gelöscht werden?",
"Anmeldung löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel); "Anmeldung löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
if (r == MessageBoxResult.OK) { if (r == MessageBoxResult.OK) {
Mouse.OverrideCursor = Cursors.AppStarting; Mouse.OverrideCursor = Cursors.Wait;
try { await Task.Run(async () => {
using (var ctx = new AppDbContext()) { try {
using var ctx = new AppDbContext();
ctx.Remove(a); ctx.Remove(a);
await ctx.SaveChangesAsync(); 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, "Anmeldung löschen", MessageBoxButton.OK, MessageBoxImage.Error);
} }
App.HintContextChange(); });
} catch (Exception exc) { App.HintContextChange();
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, "Anmeldung löschen", MessageBoxButton.OK, MessageBoxImage.Error);
}
Mouse.OverrideCursor = null; Mouse.OverrideCursor = null;
} }
} }
@ -340,7 +341,7 @@ namespace Elwig.Windows {
} }
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) { private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
Mouse.OverrideCursor = Cursors.AppStarting; Mouse.OverrideCursor = Cursors.Wait;
SaveButton.IsEnabled = false; SaveButton.IsEnabled = false;
int year = -1, dsnr = -1, mgnr = -1; int year = -1, dsnr = -1, mgnr = -1;