Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
1fc736ce16 | |||
ce39797d8b | |||
94a6dd5312 | |||
b67857ae22 | |||
a48ea8e7e2 | |||
0f87446906 | |||
e0fcaf1f53 | |||
26e549caa6 | |||
1d187c25f3 |
56
CHANGELOG.md
56
CHANGELOG.md
@ -3,9 +3,65 @@ Changelog
|
|||||||
=========
|
=========
|
||||||
|
|
||||||
|
|
||||||
|
[v0.12.0][v0.12.0] (2024-09-24) {#v0.12.0}
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
### Behobene Fehler {#v0.12.0-bugfixes}
|
||||||
|
|
||||||
|
* Das Drucken von Dokumenten ist wieder möglich. (94a6dd5312, a48ea8e7e2)
|
||||||
|
|
||||||
|
### Sonstiges {#v0.12.0-misc}
|
||||||
|
|
||||||
|
* Versuch 1: `Database is locked` Fehler beheben. ([#56][i56])
|
||||||
|
|
||||||
|
[v0.12.0]: https://git.necronda.net/winzer/elwig/releases/tag/v0.12.0
|
||||||
|
[i56]: https://git.necronda.net/winzer/elwig/issues/56
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[v0.11.4][v0.11.4] (2024-09-22) {#v0.11.4}
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
> [!WARNING]
|
||||||
|
> Aufgrund eines Fehlers ist in dieser Version das Drucken von Dokumenten nicht möglich!
|
||||||
|
>
|
||||||
|
> Es wird empfohlen die nächste Version zu verwenden.
|
||||||
|
|
||||||
|
### Behobene Fehler {#v0.11.4-bugfixes}
|
||||||
|
|
||||||
|
* In den Tooltips für Gewicht und Flächenbindungen wurden die Abstände wieder hergestellt. (e0fcaf1f53)
|
||||||
|
|
||||||
|
[v0.11.4]: https://git.necronda.net/winzer/elwig/releases/tag/v0.11.4
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[v0.11.3][v0.11.3] (2024-09-22) {#v0.11.3}
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
> [!WARNING]
|
||||||
|
> Aufgrund eines Fehlers ist in dieser Version das Drucken von Dokumenten nicht möglich!
|
||||||
|
>
|
||||||
|
> Es wird empfohlen Version 0.12.0 zu verwenden.
|
||||||
|
|
||||||
|
### Behobene Fehler {#v0.11.3-bugfixes}
|
||||||
|
|
||||||
|
* Im Mitglieder-Fenster (`MemberAdminWindow`) wurde das Berechnen der Mitgliederdaten pro Jahr und Mitglied rückgängig gemacht. (1d187c25f3)
|
||||||
|
|
||||||
|
[v0.11.3]: https://git.necronda.net/winzer/elwig/releases/tag/v0.11.3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[v0.11.2][v0.11.2] (2024-09-22) {#v0.11.2}
|
[v0.11.2][v0.11.2] (2024-09-22) {#v0.11.2}
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
|
||||||
|
> [!WARNING]
|
||||||
|
> Aufgrund eines Fehlers ist in dieser Version das Drucken von Dokumenten nicht möglich!
|
||||||
|
>
|
||||||
|
> Es wird empfohlen Version 0.12.0 zu verwenden.
|
||||||
|
|
||||||
### Neue Funktionen {#v0.11.2-features}
|
### Neue Funktionen {#v0.11.2-features}
|
||||||
|
|
||||||
* In der Anmeldeliste (`DeliveryAncmtList`) wird die Stamm-KG des Mitgliedes angegeben. (165770fa37)
|
* In der Anmeldeliste (`DeliveryAncmtList`) wird die Stamm-KG des Mitgliedes angegeben. (165770fa37)
|
||||||
|
@ -153,7 +153,7 @@ namespace Elwig.Documents {
|
|||||||
|
|
||||||
public async Task Print(int copies = 1) {
|
public async Task Print(int copies = 1) {
|
||||||
if (PdfPath == null) throw new InvalidOperationException("Pdf file has not been generated yet");
|
if (PdfPath == null) throw new InvalidOperationException("Pdf file has not been generated yet");
|
||||||
await Pdf.Print(PdfPath, copies);
|
await Pdf.Print(PdfPath, copies, DoublePaged);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Show() {
|
public void Show() {
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<UseWPF>true</UseWPF>
|
<UseWPF>true</UseWPF>
|
||||||
<PreserveCompilationContext>true</PreserveCompilationContext>
|
<PreserveCompilationContext>true</PreserveCompilationContext>
|
||||||
<ApplicationIcon>Resources\Images\Elwig.ico</ApplicationIcon>
|
<ApplicationIcon>Resources\Images\Elwig.ico</ApplicationIcon>
|
||||||
<Version>0.11.2</Version>
|
<Version>0.12.0</Version>
|
||||||
<SatelliteResourceLanguages>de-AT</SatelliteResourceLanguages>
|
<SatelliteResourceLanguages>de-AT</SatelliteResourceLanguages>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||||
@ -34,6 +34,8 @@
|
|||||||
<PackageReference Include="Microsoft.Extensions.Configuration.Ini" Version="8.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Configuration.Ini" Version="8.0.0" />
|
||||||
<PackageReference Include="Microsoft.Web.WebView2" Version="1.0.2739.15" />
|
<PackageReference Include="Microsoft.Web.WebView2" Version="1.0.2739.15" />
|
||||||
<PackageReference Include="NJsonSchema" Version="11.0.2" />
|
<PackageReference Include="NJsonSchema" Version="11.0.2" />
|
||||||
|
<PackageReference Include="PdfiumViewer" Version="2.13.0" />
|
||||||
|
<PackageReference Include="PdfiumViewer.Native.x86_64.no_v8-no_xfa" Version="2018.4.8.256" />
|
||||||
<PackageReference Include="RazorLight" Version="2.3.1" />
|
<PackageReference Include="RazorLight" Version="2.3.1" />
|
||||||
<PackageReference Include="ScottPlot.WPF" Version="5.0.39" />
|
<PackageReference Include="ScottPlot.WPF" Version="5.0.39" />
|
||||||
<PackageReference Include="System.IO.Ports" Version="8.0.0" />
|
<PackageReference Include="System.IO.Ports" Version="8.0.0" />
|
||||||
|
@ -78,7 +78,7 @@ namespace Elwig.Helpers {
|
|||||||
public bool HasBackendChanged => SavedLastWriteTime != LastWriteTime;
|
public bool HasBackendChanged => SavedLastWriteTime != LastWriteTime;
|
||||||
|
|
||||||
public static string? ConnectionStringOverride { get; set; } = null;
|
public static string? ConnectionStringOverride { get; set; } = null;
|
||||||
public static string ConnectionString => ConnectionStringOverride ?? $"Data Source=\"{App.Config.DatabaseFile}\"; Mode=ReadWrite; Foreign Keys=True; Cache=Default";
|
public static string ConnectionString => ConnectionStringOverride ?? $"Data Source=\"{App.Config.DatabaseFile}\"; Mode=ReadWrite; Foreign Keys=True; Cache=Default; Pooling=False";
|
||||||
|
|
||||||
private readonly Dictionary<int, Dictionary<int, Dictionary<string, AreaComBucket>>> _memberAreaCommitmentBuckets = [];
|
private readonly Dictionary<int, Dictionary<int, Dictionary<string, AreaComBucket>>> _memberAreaCommitmentBuckets = [];
|
||||||
private readonly Dictionary<int, Dictionary<int, Dictionary<string, int>>> _memberDeliveryBuckets = [];
|
private readonly Dictionary<int, Dictionary<int, Dictionary<string, int>>> _memberDeliveryBuckets = [];
|
||||||
|
@ -8,16 +8,12 @@ using System.Windows;
|
|||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using System.Text;
|
using PdfiumViewer;
|
||||||
|
using System.Drawing.Printing;
|
||||||
|
|
||||||
namespace Elwig.Helpers.Printing {
|
namespace Elwig.Helpers.Printing {
|
||||||
public static class Pdf {
|
public static class Pdf {
|
||||||
|
|
||||||
private static readonly string PdfToPrinter = new string[] { App.ExePath }
|
|
||||||
.Union(Environment.GetEnvironmentVariable("PATH")?.Split(';') ?? [])
|
|
||||||
.Select(x => Path.Combine(x, "PDFtoPrinter.exe"))
|
|
||||||
.Where(File.Exists)
|
|
||||||
.FirstOrDefault() ?? throw new FileNotFoundException("PDFtoPrinter executable not found");
|
|
||||||
private static readonly string WinziPrint = new string[] { App.ExePath }
|
private static readonly string WinziPrint = new string[] { App.ExePath }
|
||||||
.Union(Environment.GetEnvironmentVariable("PATH")?.Split(';') ?? [])
|
.Union(Environment.GetEnvironmentVariable("PATH")?.Split(';') ?? [])
|
||||||
.Select(x => Path.Combine(x, "WinziPrint.exe"))
|
.Select(x => Path.Combine(x, "WinziPrint.exe"))
|
||||||
@ -92,21 +88,24 @@ namespace Elwig.Helpers.Printing {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task Print(string path, int copies = 1) {
|
public static async Task Print(string path, int copies = 1, bool doublePaged = false) {
|
||||||
|
await Print(path, new() {
|
||||||
|
Copies = (short)copies,
|
||||||
|
Collate = true,
|
||||||
|
Duplex = doublePaged ? Duplex.Vertical : Duplex.Simplex,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Task Print(string path, PrinterSettings settings) {
|
||||||
try {
|
try {
|
||||||
var p = new Process() { StartInfo = new() {
|
using var doc = PdfDocument.Load(path);
|
||||||
FileName = PdfToPrinter,
|
using var printDoc = doc.CreatePrintDocument(PdfPrintMode.CutMargin);
|
||||||
CreateNoWindow = true,
|
printDoc.PrinterSettings = settings;
|
||||||
UseShellExecute = false,
|
printDoc.Print();
|
||||||
} };
|
|
||||||
p.StartInfo.ArgumentList.Add(path);
|
|
||||||
p.StartInfo.ArgumentList.Add("/s");
|
|
||||||
p.StartInfo.ArgumentList.Add($"copies={copies}");
|
|
||||||
p.Start();
|
|
||||||
await p.WaitForExitAsync();
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
MessageBox.Show("Beim Drucken ist ein Fehler aufgetreten:\n\n" + e.Message, "Fehler beim Drucken");
|
MessageBox.Show("Beim Drucken ist ein Fehler aufgetreten:\n\n" + e.Message, "Fehler beim Drucken", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -242,8 +242,8 @@ namespace Elwig.Services {
|
|||||||
AddToolTipCell(grid, "Lieferrecht", 0, 4, 1, false, false, true);
|
AddToolTipCell(grid, "Lieferrecht", 0, 4, 1, false, false, true);
|
||||||
int rowNum = 1;
|
int rowNum = 1;
|
||||||
foreach (var row in data) {
|
foreach (var row in data) {
|
||||||
|
if (rowNum == 2 || (rowNum != 1 && row.Item1 != null)) rowNum++;
|
||||||
AddToolTipRow(grid, rowNum++, row.Item1, row.Item2, row.Item3, row.Item4, row.Item5);
|
AddToolTipRow(grid, rowNum++, row.Item1, row.Item2, row.Item3, row.Item4, row.Item5);
|
||||||
if (rowNum == 2) rowNum++;
|
|
||||||
}
|
}
|
||||||
return grid;
|
return grid;
|
||||||
}
|
}
|
||||||
|
@ -494,41 +494,35 @@ namespace Elwig.Services {
|
|||||||
WeighingReason = vm.ManualWeighingReason,
|
WeighingReason = vm.ManualWeighingReason,
|
||||||
};
|
};
|
||||||
|
|
||||||
try {
|
if (oldDelivery != null && ctx.Entry(oldDelivery) is EntityEntry<Delivery> entry) {
|
||||||
if (oldDelivery != null && ctx.Entry(oldDelivery) is EntityEntry<Delivery> entry) {
|
entry.State = EntityState.Detached;
|
||||||
entry.State = EntityState.Detached;
|
|
||||||
}
|
|
||||||
if (!deliveryNew) {
|
|
||||||
ctx.Update(d);
|
|
||||||
} else {
|
|
||||||
ctx.Add(d);
|
|
||||||
}
|
|
||||||
if (!partNew) {
|
|
||||||
ctx.Update(p);
|
|
||||||
} else {
|
|
||||||
ctx.Add(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
ctx.UpdateDeliveryPartModifiers(p, await ctx.DeliveryPartModifiers
|
|
||||||
.Where(m => m.Year == p.Year && m.DId == p.DId && m.DPNr == p.DPNr)
|
|
||||||
.Select(m => m.Modifier)
|
|
||||||
.ToListAsync(), vm.Modifiers);
|
|
||||||
|
|
||||||
if (originalMgNr != null && originalMgNr.Value != d.MgNr) {
|
|
||||||
// update origin (KgNr), if default is selected
|
|
||||||
var newKgNr = (await ctx.Members.FindAsync(d.MgNr))?.DefaultKgNr;
|
|
||||||
foreach (var part in d.Parts.Where(part => part.DPNr != dpnr && part.KgNr == originalMemberKgNr)) {
|
|
||||||
part.KgNr = newKgNr;
|
|
||||||
ctx.Update(part);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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, "Lieferung aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
||||||
}
|
}
|
||||||
|
if (!deliveryNew) {
|
||||||
|
ctx.Update(d);
|
||||||
|
} else {
|
||||||
|
ctx.Add(d);
|
||||||
|
}
|
||||||
|
if (!partNew) {
|
||||||
|
ctx.Update(p);
|
||||||
|
} else {
|
||||||
|
ctx.Add(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx.UpdateDeliveryPartModifiers(p, await ctx.DeliveryPartModifiers
|
||||||
|
.Where(m => m.Year == p.Year && m.DId == p.DId && m.DPNr == p.DPNr)
|
||||||
|
.Select(m => m.Modifier)
|
||||||
|
.ToListAsync(), vm.Modifiers);
|
||||||
|
|
||||||
|
if (originalMgNr != null && originalMgNr.Value != d.MgNr) {
|
||||||
|
// update origin (KgNr), if default is selected
|
||||||
|
var newKgNr = (await ctx.Members.FindAsync(d.MgNr))?.DefaultKgNr;
|
||||||
|
foreach (var part in d.Parts.Where(part => part.DPNr != dpnr && part.KgNr == originalMemberKgNr)) {
|
||||||
|
part.KgNr = newKgNr;
|
||||||
|
ctx.Update(part);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await ctx.SaveChangesAsync();
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
@ -830,8 +824,8 @@ namespace Elwig.Services {
|
|||||||
wGrid.ColumnDefinitions.Add(new() { Width = new(50) });
|
wGrid.ColumnDefinitions.Add(new() { Width = new(50) });
|
||||||
int rowNum = 0;
|
int rowNum = 0;
|
||||||
foreach (var row in weightData) {
|
foreach (var row in weightData) {
|
||||||
|
if (rowNum == 1 || (rowNum != 0 && row.Item1 != null)) rowNum++;
|
||||||
AddWeightToolTipRow(wGrid, rowNum++, row.Item1, row.Item2, row.Item3, row.Item4, row.Item5);
|
AddWeightToolTipRow(wGrid, rowNum++, row.Item1, row.Item2, row.Item3, row.Item4, row.Item5);
|
||||||
if (rowNum == 1) rowNum++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var gGrid = new Grid();
|
var gGrid = new Grid();
|
||||||
@ -845,8 +839,8 @@ namespace Elwig.Services {
|
|||||||
AddToolTipCell(gGrid, "Max.", 0, 4, 1, false, false, true);
|
AddToolTipCell(gGrid, "Max.", 0, 4, 1, false, false, true);
|
||||||
rowNum = 1;
|
rowNum = 1;
|
||||||
foreach (var row in gradationData) {
|
foreach (var row in gradationData) {
|
||||||
|
if (rowNum == 2 || (rowNum != 1 && row.Item1 != null)) rowNum++;
|
||||||
AddGradationToolTipRow(gGrid, rowNum++, row.Item1, row.Item2, row.Item3, row.Item4, row.Item5);
|
AddGradationToolTipRow(gGrid, rowNum++, row.Item1, row.Item2, row.Item3, row.Item4, row.Item5);
|
||||||
if (rowNum == 2) rowNum++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return (wGrid, gGrid);
|
return (wGrid, gGrid);
|
||||||
|
@ -166,6 +166,14 @@ namespace Elwig.Services {
|
|||||||
} catch { }
|
} catch { }
|
||||||
var (text, gridData) = await AreaComService.GenerateToolTipData(c, maxKgPerHa);
|
var (text, gridData) = await AreaComService.GenerateToolTipData(c, maxKgPerHa);
|
||||||
|
|
||||||
|
var deliveries = await ctx.Deliveries
|
||||||
|
.Where(d => d.MgNr == m.MgNr)
|
||||||
|
.GroupBy(d => d.Year)
|
||||||
|
.ToDictionaryAsync(g => g.Key, g => g.Any());
|
||||||
|
|
||||||
|
if (m.MgNr != vm.MgNr)
|
||||||
|
return;
|
||||||
|
|
||||||
await App.MainDispatcher.BeginInvoke(() => {
|
await App.MainDispatcher.BeginInvoke(() => {
|
||||||
var (d1Grid, _) = DeliveryService.GenerateToolTip(d1GridData, []);
|
var (d1Grid, _) = DeliveryService.GenerateToolTip(d1GridData, []);
|
||||||
var (d2Grid, _) = DeliveryService.GenerateToolTip(d2GridData, []);
|
var (d2Grid, _) = DeliveryService.GenerateToolTip(d2GridData, []);
|
||||||
@ -179,12 +187,13 @@ namespace Elwig.Services {
|
|||||||
vm.StatusAreaCommitmentInfo = $"{Utils.CurrentLastSeason}";
|
vm.StatusAreaCommitmentInfo = $"{Utils.CurrentLastSeason}";
|
||||||
vm.StatusAreaCommitment = text;
|
vm.StatusAreaCommitment = text;
|
||||||
vm.StatusAreaCommitmentToolTip = grid;
|
vm.StatusAreaCommitmentToolTip = grid;
|
||||||
|
vm.MemberHasDeliveries = Enumerable.Range(0, 9999).Select(i => deliveries.GetValueOrDefault(i, false)).ToList();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
vm.MemberHasEmail = m.EmailAddresses.Count > 0;
|
vm.MemberHasEmail = m.EmailAddresses.Count > 0;
|
||||||
vm.MemberCanSendEmail = App.Config.Smtp != null && m.EmailAddresses.Count > 0;
|
vm.MemberCanSendEmail = App.Config.Smtp != null && m.EmailAddresses.Count > 0;
|
||||||
vm.MemberHasDeliveries = Enumerable.Range(0, 9999).Select(i => vm.MembersDeliveries.GetValueOrDefault((m.MgNr, i), false)).ToList();
|
vm.MemberHasDeliveries = Enumerable.Range(0, 9999).Select(i => false).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<(List<string>, IQueryable<Member>, List<string>)> GetFilters(this MemberAdminViewModel vm, AppDbContext ctx) {
|
public static async Task<(List<string>, IQueryable<Member>, List<string>)> GetFilters(this MemberAdminViewModel vm, AppDbContext ctx) {
|
||||||
|
@ -40,7 +40,6 @@ namespace Elwig.ViewModels {
|
|||||||
private bool _enableSearchInputs = true;
|
private bool _enableSearchInputs = true;
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private IEnumerable<bool> _memberHasDeliveries = [ .. Enumerable.Range(0, 9999).Select(i => false) ];
|
private IEnumerable<bool> _memberHasDeliveries = [ .. Enumerable.Range(0, 9999).Select(i => false) ];
|
||||||
public Dictionary<(int, int), bool> MembersDeliveries = [];
|
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private bool _memberListOrderByMgNr;
|
private bool _memberListOrderByMgNr;
|
||||||
|
@ -226,14 +226,22 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async void AreaCommitmentSaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
private async void AreaCommitmentSaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||||
int? fbnr = null;
|
AreaCommitmentSaveButton.IsEnabled = false;
|
||||||
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
|
|
||||||
|
int fbnr;
|
||||||
try {
|
try {
|
||||||
fbnr = await ViewModel.UpdateAreaCommitment((AreaCommitmentList.SelectedItem as AreaCom)?.FbNr);
|
fbnr = await ViewModel.UpdateAreaCommitment((AreaCommitmentList.SelectedItem as AreaCom)?.FbNr);
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
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;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
MessageBox.Show(str, "Flächenbindung aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(str, "Flächenbindung aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
AreaCommitmentSaveButton.IsEnabled = true;
|
||||||
|
return;
|
||||||
|
} finally {
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
IsEditing = false;
|
IsEditing = false;
|
||||||
IsCreating = false;
|
IsCreating = false;
|
||||||
AreaCommitmentList.IsEnabled = true;
|
AreaCommitmentList.IsEnabled = true;
|
||||||
|
@ -6,6 +6,7 @@ using System.Linq;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Input;
|
||||||
|
|
||||||
namespace Elwig.Windows {
|
namespace Elwig.Windows {
|
||||||
public partial class BaseDataWindow : AdministrationWindow {
|
public partial class BaseDataWindow : AdministrationWindow {
|
||||||
@ -316,12 +317,19 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||||
|
SaveButton.IsEnabled = false;
|
||||||
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await Save();
|
await Save();
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
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;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
MessageBox.Show(str, "Stammdaten aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(str, "Stammdaten aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
SaveButton.IsEnabled = true;
|
||||||
|
return;
|
||||||
|
} finally {
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
IsEditing = false;
|
IsEditing = false;
|
||||||
|
@ -661,6 +661,9 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async void SaveButton_Click(object sender, RoutedEventArgs e) {
|
private async void SaveButton_Click(object sender, RoutedEventArgs e) {
|
||||||
|
SaveButton.IsEnabled = false;
|
||||||
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
using (var ctx = new AppDbContext()) {
|
using (var ctx = new AppDbContext()) {
|
||||||
var origData = BillingData.FromJson(PaymentVar.Data);
|
var origData = BillingData.FromJson(PaymentVar.Data);
|
||||||
@ -677,7 +680,12 @@ namespace Elwig.Windows {
|
|||||||
var str = "Der Eintrag konnte nicht in der Datenbank gespeichert werden!\n\n" + exc.Message;
|
var str = "Der Eintrag konnte nicht in der Datenbank gespeichert werden!\n\n" + exc.Message;
|
||||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
MessageBox.Show(str, "Auszahlungsvariante speichern", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(str, "Auszahlungsvariante speichern", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
SaveButton.IsEnabled = true;
|
||||||
|
return;
|
||||||
|
} finally {
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
LockContext = true;
|
LockContext = true;
|
||||||
SetHasChanged(false);
|
SetHasChanged(false);
|
||||||
}
|
}
|
||||||
|
@ -694,14 +694,28 @@ namespace Elwig.Windows {
|
|||||||
NewDeliveryPartButton.IsEnabled = false;
|
NewDeliveryPartButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
DeliveryPartList.IsEnabled = false;
|
DeliveryPartList.IsEnabled = false;
|
||||||
var p = await ViewModel.UpdateDeliveryPart(
|
|
||||||
(DeliveryList.SelectedItem as Delivery)?.Year,
|
DeliveryPart? p;
|
||||||
(DeliveryList.SelectedItem as Delivery)?.DId,
|
try {
|
||||||
(DeliveryPartList.SelectedItem as DeliveryPart)?.DPNr,
|
p = await ViewModel.UpdateDeliveryPart(
|
||||||
InputHasChanged(DateInput),
|
(DeliveryList.SelectedItem as Delivery)?.Year,
|
||||||
InputHasChanged(TimeInput),
|
(DeliveryList.SelectedItem as Delivery)?.DId,
|
||||||
!InputIsNotDefault(TimeInput)
|
(DeliveryPartList.SelectedItem as DeliveryPart)?.DPNr,
|
||||||
);
|
InputHasChanged(DateInput),
|
||||||
|
InputHasChanged(TimeInput),
|
||||||
|
!InputIsNotDefault(TimeInput)
|
||||||
|
);
|
||||||
|
} 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, "Lieferung aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
FinishButton.IsEnabled = true;
|
||||||
|
SaveButton.IsEnabled = true;
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
|
DeliveryPartList.IsEnabled = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
EmptyScale();
|
EmptyScale();
|
||||||
await RefreshList();
|
await RefreshList();
|
||||||
await RefreshDeliveryParts();
|
await RefreshDeliveryParts();
|
||||||
@ -718,14 +732,28 @@ namespace Elwig.Windows {
|
|||||||
NewDeliveryPartButton.IsEnabled = false;
|
NewDeliveryPartButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
DeliveryPartList.IsEnabled = false;
|
DeliveryPartList.IsEnabled = false;
|
||||||
var p = await ViewModel.UpdateDeliveryPart(
|
|
||||||
(DeliveryList.SelectedItem as Delivery)?.Year,
|
DeliveryPart? p;
|
||||||
(DeliveryList.SelectedItem as Delivery)?.DId,
|
try {
|
||||||
(DeliveryPartList.SelectedItem as DeliveryPart)?.DPNr,
|
p = await ViewModel.UpdateDeliveryPart(
|
||||||
InputHasChanged(DateInput),
|
(DeliveryList.SelectedItem as Delivery)?.Year,
|
||||||
InputHasChanged(TimeInput),
|
(DeliveryList.SelectedItem as Delivery)?.DId,
|
||||||
!InputIsNotDefault(TimeInput)
|
(DeliveryPartList.SelectedItem as DeliveryPart)?.DPNr,
|
||||||
);
|
InputHasChanged(DateInput),
|
||||||
|
InputHasChanged(TimeInput),
|
||||||
|
!InputIsNotDefault(TimeInput)
|
||||||
|
);
|
||||||
|
} 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, "Lieferung aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
FinishButton.IsEnabled = true;
|
||||||
|
SaveButton.IsEnabled = true;
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
|
DeliveryPartList.IsEnabled = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
EmptyScale();
|
EmptyScale();
|
||||||
await RefreshList();
|
await RefreshList();
|
||||||
await RefreshDeliveryParts();
|
await RefreshDeliveryParts();
|
||||||
@ -743,6 +771,7 @@ namespace Elwig.Windows {
|
|||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
DeliveryList.SelectedItem = null;
|
DeliveryList.SelectedItem = null;
|
||||||
await RenewContext();
|
await RenewContext();
|
||||||
@ -940,22 +969,31 @@ namespace Elwig.Windows {
|
|||||||
SaveButton.IsEnabled = false;
|
SaveButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
|
|
||||||
|
DeliveryPart? p;
|
||||||
|
try {
|
||||||
|
p = await ViewModel.UpdateDeliveryPart(
|
||||||
|
(DeliveryList.SelectedItem as Delivery)?.Year,
|
||||||
|
(DeliveryList.SelectedItem as Delivery)?.DId,
|
||||||
|
(DeliveryPartList.SelectedItem as DeliveryPart)?.DPNr,
|
||||||
|
InputHasChanged(DateInput),
|
||||||
|
InputHasChanged(TimeInput),
|
||||||
|
!InputIsNotDefault(TimeInput)
|
||||||
|
);
|
||||||
|
} 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, "Lieferung aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
SaveButton.IsEnabled = true;
|
||||||
|
return;
|
||||||
|
} finally {
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
|
}
|
||||||
|
|
||||||
IsEditing = false;
|
IsEditing = false;
|
||||||
IsCreating = false;
|
IsCreating = false;
|
||||||
DeliveryList.IsEnabled = true;
|
DeliveryList.IsEnabled = true;
|
||||||
DeliveryPartList.IsEnabled = true;
|
DeliveryPartList.IsEnabled = true;
|
||||||
|
|
||||||
var p = await ViewModel.UpdateDeliveryPart(
|
|
||||||
(DeliveryList.SelectedItem as Delivery)?.Year,
|
|
||||||
(DeliveryList.SelectedItem as Delivery)?.DId,
|
|
||||||
(DeliveryPartList.SelectedItem as DeliveryPart)?.DPNr,
|
|
||||||
InputHasChanged(DateInput),
|
|
||||||
InputHasChanged(TimeInput),
|
|
||||||
!InputIsNotDefault(TimeInput)
|
|
||||||
);
|
|
||||||
|
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
|
|
||||||
HideSaveResetCancelButtons();
|
HideSaveResetCancelButtons();
|
||||||
ShowNewEditDeleteButtons();
|
ShowNewEditDeleteButtons();
|
||||||
LockInputs();
|
LockInputs();
|
||||||
|
@ -341,6 +341,8 @@ 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.AppStarting;
|
||||||
|
SaveButton.IsEnabled = false;
|
||||||
|
|
||||||
int year = -1, dsnr = -1, mgnr = -1;
|
int year = -1, dsnr = -1, mgnr = -1;
|
||||||
string? sortid = null;
|
string? sortid = null;
|
||||||
try {
|
try {
|
||||||
@ -350,8 +352,12 @@ namespace Elwig.Windows {
|
|||||||
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
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;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
MessageBox.Show(str, "Anmeldung aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(str, "Anmeldung aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
SaveButton.IsEnabled = true;
|
||||||
|
return;
|
||||||
|
} finally {
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
IsEditing = false;
|
IsEditing = false;
|
||||||
IsCreating = false;
|
IsCreating = false;
|
||||||
DeliveryAncmtList.IsEnabled = true;
|
DeliveryAncmtList.IsEnabled = true;
|
||||||
|
@ -201,14 +201,20 @@ 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.AppStarting;
|
||||||
|
SaveButton.IsEnabled = false;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await ViewModel.UpdateDeliverySchedule(ViewModel.SelectedDeliverySchedule?.Year, ViewModel.SelectedDeliverySchedule?.DsNr);
|
await ViewModel.UpdateDeliverySchedule(ViewModel.SelectedDeliverySchedule?.Year, ViewModel.SelectedDeliverySchedule?.DsNr);
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
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;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
MessageBox.Show(str, "Leseplan aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(str, "Leseplan aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
SaveButton.IsEnabled = true;
|
||||||
|
return;
|
||||||
|
} finally {
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
IsEditing = false;
|
IsEditing = false;
|
||||||
IsCreating = false;
|
IsCreating = false;
|
||||||
DeliveryScheduleList.IsEnabled = true;
|
DeliveryScheduleList.IsEnabled = true;
|
||||||
|
@ -706,8 +706,7 @@ namespace Elwig.Windows {
|
|||||||
private async void PrintButton_Click(object sender, RoutedEventArgs evt) {
|
private async void PrintButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
if (PrintDocument == null) return;
|
if (PrintDocument == null) return;
|
||||||
PrintButton.IsEnabled = false;
|
PrintButton.IsEnabled = false;
|
||||||
var res = MessageBox.Show($"Sollen {PrintDocument.Pages} Blätter ({PrintDocument.TotalPages} Seiten) gedruckt werden?\n" +
|
var res = MessageBox.Show($"Sollen {PrintDocument.Pages} Blätter ({PrintDocument.TotalPages} Seiten) gedruckt werden?",
|
||||||
$"Sind die \"Duplex-Einstellungen\" des Standarddruckers entsprechend eingestellt (doppelseitig bzw. einseitig)?",
|
|
||||||
"Rundschreiben drucken", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);
|
"Rundschreiben drucken", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);
|
||||||
if (res == MessageBoxResult.Yes) {
|
if (res == MessageBoxResult.Yes) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
|
@ -187,10 +187,6 @@ namespace Elwig.Windows {
|
|||||||
ControlUtils.RenewItemsSource(BranchInput, await ctx.Branches.OrderBy(b => b.Name).ToListAsync());
|
ControlUtils.RenewItemsSource(BranchInput, await ctx.Branches.OrderBy(b => b.Name).ToListAsync());
|
||||||
ControlUtils.RenewItemsSource(DefaultKgInput, await ctx.WbKgs.Select(k => k.AtKg).OrderBy(k => k.Name).ToListAsync());
|
ControlUtils.RenewItemsSource(DefaultKgInput, await ctx.WbKgs.Select(k => k.AtKg).OrderBy(k => k.Name).ToListAsync());
|
||||||
|
|
||||||
ViewModel.MembersDeliveries = await ctx.Deliveries
|
|
||||||
.GroupBy(d => new { d.MgNr, d.Year })
|
|
||||||
.ToDictionaryAsync(g => (g.Key.MgNr, g.Key.Year), g => g.Any());
|
|
||||||
|
|
||||||
var seasons = await ctx.Seasons.OrderByDescending(s => s.Year).ToListAsync();
|
var seasons = await ctx.Seasons.OrderByDescending(s => s.Year).ToListAsync();
|
||||||
Menu_DeliveryConfirmation.Items.Clear();
|
Menu_DeliveryConfirmation.Items.Clear();
|
||||||
foreach (var s in seasons) {
|
foreach (var s in seasons) {
|
||||||
@ -395,14 +391,22 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||||
int? mgnr = null;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
|
SaveButton.IsEnabled = false;
|
||||||
|
|
||||||
|
int mgnr;
|
||||||
try {
|
try {
|
||||||
mgnr = await ViewModel.UpdateMember(ViewModel.SelectedMember?.MgNr);
|
mgnr = await ViewModel.UpdateMember(ViewModel.SelectedMember?.MgNr);
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
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;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
MessageBox.Show(str, "Mitglied aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(str, "Mitglied aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
SaveButton.IsEnabled = true;
|
||||||
|
return;
|
||||||
|
} finally {
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
IsEditing = false;
|
IsEditing = false;
|
||||||
IsCreating = false;
|
IsCreating = false;
|
||||||
MemberList.IsEnabled = true;
|
MemberList.IsEnabled = true;
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
::mkdir "C:\Program Files\Elwig"
|
::mkdir "C:\Program Files\Elwig"
|
||||||
::curl --fail -s -L "https://github.com/emendelson/pdftoprinter/raw/main/PDFtoPrinter.exe" -z "C:\Program Files\Elwig\PDFtoPrinter.exe" -o "C:\Program Files\Elwig\PDFtoPrinter.exe"
|
|
||||||
mkdir "C:\ProgramData\Elwig\resources"
|
mkdir "C:\ProgramData\Elwig\resources"
|
||||||
copy /b /y Documents\*.css "C:\ProgramData\Elwig\resources"
|
copy /b /y Documents\*.css "C:\ProgramData\Elwig\resources"
|
||||||
copy /b /y Documents\*.cshtml "C:\ProgramData\Elwig\resources"
|
copy /b /y Documents\*.cshtml "C:\ProgramData\Elwig\resources"
|
||||||
|
@ -25,7 +25,6 @@
|
|||||||
</Task>
|
</Task>
|
||||||
</UsingTask>
|
</UsingTask>
|
||||||
<Target Name="CustomBeforeBuild" BeforeTargets="BeforeBuild">
|
<Target Name="CustomBeforeBuild" BeforeTargets="BeforeBuild">
|
||||||
<Exec Command="curl --fail -s -L "https://github.com/emendelson/pdftoprinter/raw/main/PDFtoPrinter.exe" -z "$(ProjectDir)\Files\PDFtoPrinter.exe" -o "$(ProjectDir)\Files\PDFtoPrinter.exe"" />
|
|
||||||
<Exec Command="dotnet publish "$(ProjectDir)\..\Elwig\Elwig.csproj" "/p:PublishProfile=$(ProjectDir)\..\Elwig\Properties\PublishProfiles\FolderProfile.pubxml"" />
|
<Exec Command="dotnet publish "$(ProjectDir)\..\Elwig\Elwig.csproj" "/p:PublishProfile=$(ProjectDir)\..\Elwig\Properties\PublishProfiles\FolderProfile.pubxml"" />
|
||||||
<GetFileVersion AssemblyPath="..\Elwig\bin\Publish\Elwig.exe">
|
<GetFileVersion AssemblyPath="..\Elwig\bin\Publish\Elwig.exe">
|
||||||
<Output TaskParameter="Version" PropertyName="ElwigFileVersion" />
|
<Output TaskParameter="Version" PropertyName="ElwigFileVersion" />
|
||||||
@ -36,7 +35,6 @@
|
|||||||
</Target>
|
</Target>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="Files\config.ini" />
|
<None Include="Files\config.ini" />
|
||||||
<None Include="Files\PDFtoPrinter.exe" />
|
|
||||||
<None Include="Files\WinziPrint.exe" />
|
<None Include="Files\WinziPrint.exe" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
@ -10,9 +10,6 @@
|
|||||||
<Component Directory="InstallFolder">
|
<Component Directory="InstallFolder">
|
||||||
<File Source="$(ProjectDir)\Files\WinziPrint.exe" Id="WinziPrint.exe"/>
|
<File Source="$(ProjectDir)\Files\WinziPrint.exe" Id="WinziPrint.exe"/>
|
||||||
</Component>
|
</Component>
|
||||||
<Component Directory="InstallFolder">
|
|
||||||
<File Source="$(ProjectDir)\Files\PDFtoPrinter.exe" Id="PDFtoPrinter.exe"/>
|
|
||||||
</Component>
|
|
||||||
</ComponentGroup>
|
</ComponentGroup>
|
||||||
</Fragment>
|
</Fragment>
|
||||||
</Wix>
|
</Wix>
|
||||||
|
@ -15,7 +15,7 @@ namespace Tests.E2ETests {
|
|||||||
[OneTimeSetUp]
|
[OneTimeSetUp]
|
||||||
public static async Task SetupDatabase() {
|
public static async Task SetupDatabase() {
|
||||||
if (File.Exists(Utils.TestDatabasePath)) File.Delete(Utils.TestDatabasePath);
|
if (File.Exists(Utils.TestDatabasePath)) File.Delete(Utils.TestDatabasePath);
|
||||||
using var cnx = await AppDbContext.ConnectAsync($"Data Source=\"{Utils.TestDatabasePath}\"; Mode=ReadWriteCreate; Foreign Keys=True; Cache=Default");
|
using var cnx = await AppDbContext.ConnectAsync($"Data Source=\"{Utils.TestDatabasePath}\"; Mode=ReadWriteCreate; Foreign Keys=True; Cache=Default; Pooling=False");
|
||||||
await AppDbContext.ExecuteEmbeddedScript(cnx, Assembly.GetExecutingAssembly(), "Tests.Resources.Sql.Create.sql");
|
await AppDbContext.ExecuteEmbeddedScript(cnx, Assembly.GetExecutingAssembly(), "Tests.Resources.Sql.Create.sql");
|
||||||
await AppDbContext.ExecuteEmbeddedScript(cnx, Assembly.GetExecutingAssembly(), "Tests.Resources.Sql.Insert.sql");
|
await AppDbContext.ExecuteEmbeddedScript(cnx, Assembly.GetExecutingAssembly(), "Tests.Resources.Sql.Insert.sql");
|
||||||
await AppDbContext.ExecuteEmbeddedScript(cnx, Assembly.GetExecutingAssembly(), "Tests.Resources.Sql.E2EInsert.sql");
|
await AppDbContext.ExecuteEmbeddedScript(cnx, Assembly.GetExecutingAssembly(), "Tests.Resources.Sql.E2EInsert.sql");
|
||||||
|
Reference in New Issue
Block a user