[#3] Elwig: Add user-friendly sync method
All checks were successful
Test / Run tests (push) Successful in 2m57s

This commit is contained in:
2024-07-26 14:58:15 +02:00
parent b6afb94246
commit b49c9c65b1
7 changed files with 517 additions and 102 deletions

View File

@ -529,16 +529,16 @@ namespace Elwig.Services {
var (f, _, q, _, _) = await vm.GetFilters(ctx);
query = q;
filterNames.AddRange(f);
} else if (modeWho == 2) {
query = ctx.DeliveryParts
.Where(p => p.Year == Utils.CurrentLastSeason && p.Delivery.ZwstId == App.ZwstId);
filterNames.AddRange([$"{Utils.CurrentLastSeason}", $"Zweigstelle {App.BranchName}"]);
} else {
var date = $"{Utils.Today:yyyy-MM-dd}";
query = ctx.DeliveryParts
.Where(p => p.Delivery.DateString == date);
filterNames.Add($"{Utils.Today:dd.MM.yyyy}");
}
if (exportMode == ExportMode.Upload && !filterNames.Contains($"Zweigstelle {App.BranchName}")) {
query = query.Where(p => p.Delivery.ZwstId == App.ZwstId);
filterNames.Add($"Zweigstelle {App.BranchName}");
}
query = query
.OrderBy(p => p.Delivery.DateString)
@ -566,7 +566,7 @@ namespace Elwig.Services {
}
} else if (exportMode == ExportMode.Export) {
var d = new SaveFileDialog() {
FileName = $"Lieferungen.zip",
FileName = $"Lieferungen_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.zip",
DefaultExt = "zip",
Filter = "ZIP-Datei (*.zip)|*.zip",
Title = $"{DeliveryJournal.Name} speichern unter - Elwig"
@ -574,7 +574,13 @@ namespace Elwig.Services {
if (d.ShowDialog() == true) {
Mouse.OverrideCursor = Cursors.AppStarting;
try {
await ElwigData.ExportDeliveries(d.FileName, await query.Select(p => p.Delivery).Distinct().ToListAsync(), filterNames);
await ElwigData.Export(d.FileName, await query
.Select(p => p.Delivery)
.Distinct()
.Include(d => d.Parts)
.ThenInclude(p => p.PartModifiers)
.AsSplitQuery()
.ToListAsync(), filterNames);
} catch (Exception exc) {
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
}
@ -585,12 +591,18 @@ namespace Elwig.Services {
try {
var filename = $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.zip";
var path = Path.Combine(App.TempPath, filename);
var list = await query.Select(p => p.Delivery).Distinct().ToListAsync();
var list = await query
.Select(p => p.Delivery)
.Distinct()
.Include(d => d.Parts)
.ThenInclude(p => p.PartModifiers)
.AsSplitQuery()
.ToListAsync();
if (list.Count == 0) {
MessageBox.Show("Es wurden keine Lieferungen zum Hochladen ausgewählt!", "Fehler",
MessageBox.Show("Es wurden keine Lieferungen zum Hochladen ausgewählt!", "Lieferungen hochladen",
MessageBoxButton.OK, MessageBoxImage.Error);
} else {
await ElwigData.ExportDeliveries(path, list, filterNames);
await ElwigData.Export(path, list, filterNames);
await Utils.UploadExportData(path, App.Config.SyncUrl, App.Config.SyncUsername, App.Config.SyncPassword);
MessageBox.Show($"Lieferungen erfolgreich hochgeladen!", "Lieferungen hochgeladen",
MessageBoxButton.OK, MessageBoxImage.Information);