[#57] DeliveryAdminWindow: Use Task.Run()
This commit is contained in:
@ -430,9 +430,10 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<DeliveryPart> UpdateDeliveryPart(this DeliveryAdminViewModel vm, int? oldYear, int? oldDid, int? oldDpnr, bool dateHasChanged, bool timeHasChanged, bool timeIsDefault) {
|
public static async Task<DeliveryPart> UpdateDeliveryPart(this DeliveryAdminViewModel vm, int? oldYear, int? oldDid, int? oldDpnr, bool dateHasChanged, bool timeHasChanged, bool timeIsDefault) {
|
||||||
|
var p = await Task.Run(async () => {
|
||||||
DeliveryPart p;
|
DeliveryPart p;
|
||||||
|
|
||||||
using (var ctx = new AppDbContext()) {
|
using var ctx = new AppDbContext();
|
||||||
int year = oldYear ?? Utils.CurrentYear;
|
int year = oldYear ?? Utils.CurrentYear;
|
||||||
int did = oldDid ?? await ctx.NextDId(year);
|
int did = oldDid ?? await ctx.NextDId(year);
|
||||||
int dpnr = oldDpnr ?? await ctx.NextDPNr(year, did);
|
int dpnr = oldDpnr ?? await ctx.NextDPNr(year, did);
|
||||||
@ -524,7 +525,9 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
}
|
|
||||||
|
return p;
|
||||||
|
});
|
||||||
|
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
|
|
||||||
@ -532,9 +535,10 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<Delivery> SplitDeliveryToMember(int year, int did, int[] weights, int mgnr) {
|
public static async Task<Delivery> SplitDeliveryToMember(int year, int did, int[] weights, int mgnr) {
|
||||||
|
var n = await Task.Run(async () => {
|
||||||
Delivery n;
|
Delivery n;
|
||||||
|
|
||||||
using (var ctx = new AppDbContext()) {
|
using var ctx = new AppDbContext();
|
||||||
bool anyLeft = false;
|
bool anyLeft = false;
|
||||||
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
||||||
var lnr = await ctx.NextLNr(d.Date, d.ZwstId);
|
var lnr = await ctx.NextLNr(d.Date, d.ZwstId);
|
||||||
@ -577,7 +581,9 @@ namespace Elwig.Services {
|
|||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
if (!anyLeft)
|
if (!anyLeft)
|
||||||
await ctx.Database.ExecuteSqlAsync($"DELETE FROM delivery WHERE (year, did) = ({d.Year}, {d.DId})");
|
await ctx.Database.ExecuteSqlAsync($"DELETE FROM delivery WHERE (year, did) = ({d.Year}, {d.DId})");
|
||||||
}
|
|
||||||
|
return n;
|
||||||
|
});
|
||||||
|
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
|
|
||||||
@ -585,9 +591,9 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<Delivery> SplitDeliveryToLsNr(int year, int did, int[] weights, string lsnr) {
|
public static async Task<Delivery> SplitDeliveryToLsNr(int year, int did, int[] weights, string lsnr) {
|
||||||
|
var n = await Task.Run(async () => {
|
||||||
Delivery n;
|
Delivery n;
|
||||||
|
using var ctx = new AppDbContext();
|
||||||
using (var ctx = new AppDbContext()) {
|
|
||||||
var anyLeft = false;
|
var anyLeft = false;
|
||||||
n = (await ctx.Deliveries.FirstAsync(d => d.LsNr == lsnr))!;
|
n = (await ctx.Deliveries.FirstAsync(d => d.LsNr == lsnr))!;
|
||||||
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
||||||
@ -616,7 +622,9 @@ namespace Elwig.Services {
|
|||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
if (!anyLeft && n.LsNr != d.LsNr)
|
if (!anyLeft && n.LsNr != d.LsNr)
|
||||||
await ctx.Database.ExecuteSqlAsync($"DELETE FROM delivery WHERE (year, did) = ({d.Year}, {d.DId})");
|
await ctx.Database.ExecuteSqlAsync($"DELETE FROM delivery WHERE (year, did) = ({d.Year}, {d.DId})");
|
||||||
}
|
|
||||||
|
return n;
|
||||||
|
});
|
||||||
|
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
|
|
||||||
@ -624,7 +632,8 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task DepreciateDelivery(int year, int did, int[] weights) {
|
public static async Task DepreciateDelivery(int year, int did, int[] weights) {
|
||||||
using (var ctx = new AppDbContext()) {
|
await Task.Run(async () => {
|
||||||
|
using var ctx = new AppDbContext();
|
||||||
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
||||||
var dpnr = await ctx.NextDPNr(year, did);
|
var dpnr = await ctx.NextDPNr(year, did);
|
||||||
foreach (var (p, w) in d.Parts.ToList().Zip(weights)) {
|
foreach (var (p, w) in d.Parts.ToList().Zip(weights)) {
|
||||||
@ -648,13 +657,14 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
}
|
});
|
||||||
|
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task GenerateDeliveryNote(int year, int did, ExportMode mode) {
|
public static async Task GenerateDeliveryNote(int year, int did, ExportMode mode) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
|
await Task.Run(async () => {
|
||||||
try {
|
try {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
||||||
@ -663,6 +673,7 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -707,7 +718,8 @@ namespace Elwig.Services {
|
|||||||
Title = $"{DeliveryJournal.Name} speichern unter - Elwig"
|
Title = $"{DeliveryJournal.Name} speichern unter - Elwig"
|
||||||
};
|
};
|
||||||
if (d.ShowDialog() == true) {
|
if (d.ShowDialog() == true) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
|
await Task.Run(async () => {
|
||||||
try {
|
try {
|
||||||
var data = await DeliveryJournalData.FromQuery(query, filterNames);
|
var data = await DeliveryJournalData.FromQuery(query, filterNames);
|
||||||
using var ods = new OdsFile(d.FileName);
|
using var ods = new OdsFile(d.FileName);
|
||||||
@ -715,6 +727,7 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
} else if (mode == ExportMode.Export) {
|
} else if (mode == ExportMode.Export) {
|
||||||
@ -725,7 +738,8 @@ namespace Elwig.Services {
|
|||||||
Title = $"{DeliveryJournal.Name} speichern unter - Elwig"
|
Title = $"{DeliveryJournal.Name} speichern unter - Elwig"
|
||||||
};
|
};
|
||||||
if (d.ShowDialog() == true) {
|
if (d.ShowDialog() == true) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
|
await Task.Run(async () => {
|
||||||
try {
|
try {
|
||||||
await ElwigData.Export(d.FileName, await query
|
await ElwigData.Export(d.FileName, await query
|
||||||
.Select(p => p.Delivery)
|
.Select(p => p.Delivery)
|
||||||
@ -737,10 +751,12 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
} else if (mode == ExportMode.Upload && App.Config.SyncUrl != null) {
|
} else if (mode == ExportMode.Upload && App.Config.SyncUrl != null) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
|
await Task.Run(async () => {
|
||||||
try {
|
try {
|
||||||
var filename = $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.elwig.zip";
|
var filename = $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.elwig.zip";
|
||||||
var path = Path.Combine(App.TempPath, filename);
|
var path = Path.Combine(App.TempPath, filename);
|
||||||
@ -767,9 +783,11 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
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;
|
||||||
|
await Task.Run(async () => {
|
||||||
try {
|
try {
|
||||||
var data = await DeliveryJournalData.FromQuery(query, filterNames);
|
var data = await DeliveryJournalData.FromQuery(query, filterNames);
|
||||||
using var doc = new DeliveryJournal(string.Join(" / ", filterNames), data);
|
using var doc = new DeliveryJournal(string.Join(" / ", filterNames), data);
|
||||||
@ -777,6 +795,7 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -798,7 +817,8 @@ namespace Elwig.Services {
|
|||||||
throw new ArgumentException("Invalid value for ExportSubject");
|
throw new ArgumentException("Invalid value for ExportSubject");
|
||||||
}
|
}
|
||||||
|
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
|
await Task.Run(async () => {
|
||||||
try {
|
try {
|
||||||
var data = await WineQualityStatisticsData.FromQuery(query, App.Client.OrderingMemberList);
|
var data = await WineQualityStatisticsData.FromQuery(query, App.Client.OrderingMemberList);
|
||||||
using var doc = new WineQualityStatistics(string.Join(" / ", filterNames), data);
|
using var doc = new WineQualityStatistics(string.Join(" / ", filterNames), data);
|
||||||
@ -806,6 +826,7 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -843,7 +864,8 @@ namespace Elwig.Services {
|
|||||||
Title = $"{DeliveryDepreciationList.Name} speichern unter - Elwig"
|
Title = $"{DeliveryDepreciationList.Name} speichern unter - Elwig"
|
||||||
};
|
};
|
||||||
if (d.ShowDialog() == true) {
|
if (d.ShowDialog() == true) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
|
await Task.Run(async () => {
|
||||||
try {
|
try {
|
||||||
using var ods = new OdsFile(d.FileName);
|
using var ods = new OdsFile(d.FileName);
|
||||||
var tblTotal = await DeliveryJournalData.FromQuery(query, filterNames);
|
var tblTotal = await DeliveryJournalData.FromQuery(query, filterNames);
|
||||||
@ -859,10 +881,12 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
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;
|
||||||
|
await Task.Run(async () => {
|
||||||
try {
|
try {
|
||||||
var data = await DeliveryJournalData.FromQuery(query, filterNames);
|
var data = await DeliveryJournalData.FromQuery(query, filterNames);
|
||||||
using var doc = new DeliveryDepreciationList(string.Join(" / ", filterNames), data);
|
using var doc = new DeliveryDepreciationList(string.Join(" / ", filterNames), data);
|
||||||
@ -870,6 +894,7 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1038,10 +1063,12 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task DeleteDelivery(string lsnr) {
|
public static async Task DeleteDelivery(string lsnr) {
|
||||||
using (var ctx = new AppDbContext()) {
|
await Task.Run(async () => {
|
||||||
|
using var ctx = new AppDbContext();
|
||||||
await ctx.Deliveries.Where(d => d.LsNr == lsnr).ExecuteDeleteAsync();
|
await ctx.Deliveries.Where(d => d.LsNr == lsnr).ExecuteDeleteAsync();
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
}
|
});
|
||||||
|
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -711,7 +711,7 @@ namespace Elwig.Windows {
|
|||||||
private async void NewDeliveryPartButton_Click(object sender, RoutedEventArgs evt) {
|
private async void NewDeliveryPartButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
FinishButton.IsEnabled = false;
|
FinishButton.IsEnabled = false;
|
||||||
NewDeliveryPartButton.IsEnabled = false;
|
NewDeliveryPartButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
DeliveryPartList.IsEnabled = false;
|
DeliveryPartList.IsEnabled = false;
|
||||||
|
|
||||||
DeliveryPart? p;
|
DeliveryPart? p;
|
||||||
@ -749,7 +749,7 @@ namespace Elwig.Windows {
|
|||||||
private async void FinishButton_Click(object sender, RoutedEventArgs evt) {
|
private async void FinishButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
FinishButton.IsEnabled = false;
|
FinishButton.IsEnabled = false;
|
||||||
NewDeliveryPartButton.IsEnabled = false;
|
NewDeliveryPartButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
DeliveryPartList.IsEnabled = false;
|
DeliveryPartList.IsEnabled = false;
|
||||||
|
|
||||||
DeliveryPart? p;
|
DeliveryPart? p;
|
||||||
@ -880,7 +880,7 @@ namespace Elwig.Windows {
|
|||||||
if (res == null)
|
if (res == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
try {
|
try {
|
||||||
var id = res.Value.Item1;
|
var id = res.Value.Item1;
|
||||||
var weights = res.Value.Item2;
|
var weights = res.Value.Item2;
|
||||||
@ -951,7 +951,7 @@ namespace Elwig.Windows {
|
|||||||
$"Soll die Lieferung {d.LsNr} ({d.Member.AdministrativeName}, MgNr. {d.Member.MgNr}) wirklich unwiderruflich gelöscht werden?",
|
$"Soll die Lieferung {d.LsNr} ({d.Member.AdministrativeName}, MgNr. {d.Member.MgNr}) wirklich unwiderruflich gelöscht werden?",
|
||||||
"Lieferung löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
"Lieferung 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 {
|
try {
|
||||||
await DeliveryService.DeleteDelivery(d.LsNr);
|
await DeliveryService.DeleteDelivery(d.LsNr);
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
@ -971,7 +971,7 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||||
SaveButton.IsEnabled = false;
|
SaveButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
|
|
||||||
DeliveryPart? p;
|
DeliveryPart? p;
|
||||||
try {
|
try {
|
||||||
@ -988,9 +988,8 @@ namespace Elwig.Windows {
|
|||||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
MessageBox.Show(str, "Lieferung aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(str, "Lieferung aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
SaveButton.IsEnabled = true;
|
SaveButton.IsEnabled = true;
|
||||||
return;
|
|
||||||
} finally {
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
IsEditing = false;
|
IsEditing = false;
|
||||||
@ -1007,6 +1006,7 @@ namespace Elwig.Windows {
|
|||||||
await RefreshDeliveryParts();
|
await RefreshDeliveryParts();
|
||||||
RefreshInputs();
|
RefreshInputs();
|
||||||
|
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
DepreciateButton.IsEnabled = true;
|
DepreciateButton.IsEnabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user