Compare commits

...
3 Commits
Author SHA1 Message Date
lorenz.stechauner 2406f58a91 Bump version to 1.2.0.1
Test / Run tests (push) Successful in 2m6s
Deploy / Build and Deploy (push) Successful in 2m1s
2026-10-08 10:57:02 +02:00
lorenz.stechauner bc47bcc784 Elwig: Update dependencies 2026-10-08 10:54:32 +02:00
lorenz.stechauner b8b86ef7ec [#76] Utils: Fix non-ascii characters in User-Agent header 2026-10-08 10:54:17 +02:00
5 changed files with 52 additions and 31 deletions
+17
View File
@@ -2,6 +2,23 @@
Changelog
=========
[v1.2.0.1][v1.2.0.1] (2026-10-08) {#v1.2.0.1}
---------------------------------------------
### Behobene Fehler {#v1.2.0.1-bugfixes}
- Umlaute im HTTP-Header werden richtig behandelt. ([#76][i76])
### Sonstiges {#v1.2.0.1-misc}
- Abhängigkeiten aktualisiert. (bc47bcc784)
[v1.2.0.1]: https://git.necronda.net/winzer/elwig/releases/tag/v1.2.0.1
[i76]: https://git.necronda.net/winzer/elwig/issues/76
[v1.2.0.0][v1.2.0.0] (2026-10-03) {#v1.2.0.0}
---------------------------------------------
+14 -13
View File
@@ -339,20 +339,21 @@ namespace Elwig {
public static async Task CheckForUpdates(bool showAlert = false) {
if (Config.UpdateUrl == null) return;
var latest = await Utils.GetLatestInstallerUrl(Config.UpdateUrl);
if (latest != null && new Version(latest.Value.Version) > Version) {
await MainDispatcher.BeginInvoke(() => {
var d = new UpdateDialog(latest.Value.Version, latest.Value.Url, latest.Value.Size);
if (d.ShowDialog() == true) {
ShutdownNow();
}
});
} else if (showAlert) {
if (latest == null) {
InteractionService.ShowError("Nach Updates suchen", "Informationen konnten nicht abgerufen werden!");
} else {
InteractionService.ShowInformation("Nach Updates suchen", $"Elwig ist auf dem aktuellsten Stand! (Version: {latest.Value.Version})");
try {
var latest = await Utils.GetLatestInstallerUrl(Config.UpdateUrl);
if (new Version(latest.Version) > Version) {
await MainDispatcher.BeginInvoke(() => {
var d = new UpdateDialog(latest.Version, latest.Url, latest.Size);
if (d.ShowDialog() == true) {
ShutdownNow();
}
});
} else if (showAlert) {
InteractionService.ShowInformation("Nach Updates suchen", $"Elwig ist auf dem aktuellsten Stand! (Version: {latest.Version})");
}
} catch (Exception exc) {
if (showAlert)
InteractionService.ShowException("Nach Updates suchen", $"Informationen konnten nicht abgerufen werden!", exc);
}
}
+3 -3
View File
@@ -9,7 +9,7 @@
<UseWindowsForms>true</UseWindowsForms>
<PreserveCompilationContext>true</PreserveCompilationContext>
<ApplicationIcon>Resources\Images\Elwig.ico</ApplicationIcon>
<Version>1.2.0.0</Version>
<Version>1.2.0.1</Version>
<SatelliteResourceLanguages>de-AT</SatelliteResourceLanguages>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<ApplicationManifest>App.manifest</ApplicationManifest>
@@ -23,11 +23,11 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="bblanchon.PDFium.Win32" Version="156.0.8076" />
<PackageReference Include="bblanchon.PDFium.Win32" Version="157.0.8086" />
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.2" />
<PackageReference Include="itext" Version="9.8.0" />
<PackageReference Include="itext.bouncy-castle-adapter" Version="9.8.0" />
<PackageReference Include="LinqKit" Version="1.3.11" />
<PackageReference Include="LinqKit" Version="1.4.0" />
<PackageReference Include="MailKit" Version="4.18.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.12" />
<PackageReference Include="Microsoft.Extensions.Configuration.Ini" Version="10.0.12" />
+16 -13
View File
@@ -483,12 +483,20 @@ namespace Elwig.Helpers {
return InternetGetConnectedState(out var _, 0);
}
public static string ReplaceUmlaute(string s) {
return s
.Replace("ä", "ae").Replace("Ä", "Ae")
.Replace("ö", "oe").Replace("Ö", "Oe")
.Replace("ü", "ue").Replace("Ü", "Ue")
.Replace("ß", "ss").Replace("ẞ", "SS");
}
public static HttpClient GetHttpClient(string? username = null, string? password = null, string? accept = null) {
var client = new HttpClient() {
Timeout = TimeSpan.FromSeconds(5),
};
client.DefaultRequestHeaders.UserAgent.Clear();
client.DefaultRequestHeaders.UserAgent.ParseAdd($"Elwig/{App.Version} ({App.Client?.NameToken}, {App.BranchName}, {Environment.MachineName}, {Environment.OSVersion})");
client.DefaultRequestHeaders.UserAgent.ParseAdd($"Elwig/{App.Version} ({App.Client?.NameToken}, {ReplaceUmlaute(App.BranchName)}, {Environment.MachineName}, {Environment.OSVersion})");
client.DefaultRequestHeaders.Accept.Clear();
if (accept != null)
client.DefaultRequestHeaders.Accept.Add(new(accept));
@@ -497,18 +505,13 @@ namespace Elwig.Helpers {
return client;
}
public static async Task<(string Version, string Url, long Size)?> GetLatestInstallerUrl(string url) {
try {
using var client = GetHttpClient(accept: "application/json");
using var res = await client.GetAsync(url);
if (!res.IsSuccessStatusCode)
return null;
var resJson = JsonNode.Parse(await res.Content.ReadAsStringAsync());
var data = resJson!["data"]!.AsArray()[^1]!;
return ((string)data["version"]!, (string)data["url"]!, (long)data["size"]!);
} catch {
return null;
}
public static async Task<(string Version, string Url, long Size)> GetLatestInstallerUrl(string url) {
using var client = GetHttpClient(accept: "application/json");
using var res = await client.GetAsync(url);
res.EnsureSuccessStatusCode();
var resJson = JsonNode.Parse(await res.Content.ReadAsStringAsync());
var data = resJson!["data"]!.AsArray()[^1]!;
return ((string)data["version"]!, (string)data["url"]!, (long)data["size"]!);
}
public static async Task UploadExportData(string zip, string url, string username, string password) {
+2 -2
View File
@@ -13,7 +13,7 @@ About
**Product:** Elwig
**Description:** Electronic Management for Vintners' Cooperatives
**Type:** ERP system
**Version:** 1.2.0.0 ([Changelog](./CHANGELOG.md))
**Version:** 1.2.0.1 ([Changelog](./CHANGELOG.md))
**License:** [GNU General Public License 3.0 (GPLv3)](./LICENSE)
**Website:** https://elwig.at/
**Source code:** https://git.necronda.net/winzer/elwig
@@ -33,7 +33,7 @@ Packaging: [WiX Toolset](https://www.firegiant.com/wixtoolset/)
**Produkt:** Elwig
**Beschreibung:** Elektronische Winzergenossenschaftsverwaltung
**Typ:** Warenwirtschaftssystem (ERP-System)
**Version:** 1.2.0.0 ([Änderungsprotokoll](./CHANGELOG.md))
**Version:** 1.2.0.1 ([Änderungsprotokoll](./CHANGELOG.md))
**Lizenz:** [GNU General Public License 3.0 (GPLv3)](./LICENSE)
**Website:** https://elwig.at/
**Quellcode:** https://git.necronda.net/winzer/elwig