diff --git a/CardCheckAssistant/Assets/icon.png b/CardCheckAssistant/Assets/icon.png
new file mode 100644
index 0000000..17f2067
Binary files /dev/null and b/CardCheckAssistant/Assets/icon.png differ
diff --git a/CardCheckAssistant/CardCheckAssistant (SFConflict mail@shansen-online.de 2023-09-25-11-11-44).csproj b/CardCheckAssistant/CardCheckAssistant (SFConflict mail@shansen-online.de 2023-09-25-11-11-44).csproj
deleted file mode 100644
index cf1df2f..0000000
--- a/CardCheckAssistant/CardCheckAssistant (SFConflict mail@shansen-online.de 2023-09-25-11-11-44).csproj
+++ /dev/null
@@ -1,823 +0,0 @@
-
-
- WinExe
- net6.0-windows10.0.19041.0
- 10.0.17763.0
- CardCheckAssistant
- x86;x64
- win10-x86;win10-x64
- win10-$(Platform).pubxml
- app.manifest
- enable
- enable
- true
- true
- True
- True
- 17473166A3D5B4DDF7BEC28DA037402A7C1601F8
- SHA256
- True
- False
- True
- Never
- true
- true
- 0
- de-DE
- Assets\AppIco.ico
- Assets\StoreLogo.scale-400.png
- https://github.com/c3rebro/CardCheckAssistant
- v1.0.21
-------------------------------------------------------
-+ 2 Sek. Wartezeit zwischen Schritt 1 und 2 um den Leser frei zu geben
-
-v1.0.20
-------------------------------------------------------
-+ Abfrage der LSM Programmieroptionen: Wie wurde programmiert?
- Dies kann jetzt direkt eingegeben werden ohne das PDF öffnen zu müssen.
-+ Mifare Classic wird während der Prüfung anders behandelt (z.B. Angabe verwendeter Sektoren)
-+ Händler und ADM als neue Spalten.
- $(OutputPath)
- CardCheckAssistant
- Messgeraetetechnik Hansen
- Steven Hansen
- 1.0.21
- $(AssemblyVersion)
- https://github.com/c3rebro/CardCheckAssistant/releases/latest/download/CardCheckAssistant_x64.msix
- x86
- README.md
- Description
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- MSBuild:Compile
-
-
- MSBuild:Compile
-
-
- $(DefaultXamlRuntime)
- Designer
-
-
- $(DefaultXamlRuntime)
- Designer
-
-
- $(DefaultXamlRuntime)
-
-
- MSBuild:Compile
-
-
-
-
- True
- True
- Resources.resx
-
-
-
-
- ResXFileCodeGenerator
- Resources.Designer.cs
-
-
-
-
- MSBuild:Compile
-
-
-
-
- MSBuild:Compile
-
-
-
-
-
-
-
-
-
- MSBuild:Compile
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- True
- \
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
- \
-
-
-
diff --git a/CardCheckAssistant/CardCheckAssistant.csproj b/CardCheckAssistant/CardCheckAssistant.csproj
index 04789d1..37e0ea9 100644
--- a/CardCheckAssistant/CardCheckAssistant.csproj
+++ b/CardCheckAssistant/CardCheckAssistant.csproj
@@ -16,8 +16,8 @@
True
17473166A3D5B4DDF7BEC28DA037402A7C1601F8
SHA256
- True
- False
+ False
+ True
True
Never
true
@@ -45,13 +45,14 @@ v1.0.20
CardCheckAssistant
Messgeraetetechnik Hansen
Steven Hansen
- 1.0.28
+ 1.0.30
$(AssemblyVersion)
- https://github.com/c3rebro/CardCheckAssistant/releases/latest/download/CardCheckAssistant.msix
+ https://github.com/c3rebro/CardCheckAssistant/releases/latest/download
AnyCPU
README.md
Description
C:\Temp\Seafile\CardCheckAssistant\CardCheckAssistant\bin\AppPackages\
+ x64
diff --git a/CardCheckAssistant/Package.appxmanifest b/CardCheckAssistant/Package.appxmanifest
index b527c2b..947ced3 100644
--- a/CardCheckAssistant/Package.appxmanifest
+++ b/CardCheckAssistant/Package.appxmanifest
@@ -8,9 +8,9 @@
IgnorableNamespaces="uap rescap uap3">
+ Version="1.0.30.0" />
CardCheckAssistant
diff --git a/CardCheckAssistant/ViewModels/HomePageViewModel.cs b/CardCheckAssistant/ViewModels/HomePageViewModel.cs
index 02c09f8..fcab5e6 100644
--- a/CardCheckAssistant/ViewModels/HomePageViewModel.cs
+++ b/CardCheckAssistant/ViewModels/HomePageViewModel.cs
@@ -1,8 +1,4 @@
-using System.Collections.ObjectModel;
-using System.Diagnostics;
-using System.Reflection;
-using System.Windows.Input;
-using CardCheckAssistant.AppNotification;
+using CardCheckAssistant.AppNotification;
using CardCheckAssistant.Models;
using CardCheckAssistant.Services;
using CardCheckAssistant.Views;
@@ -12,12 +8,19 @@
using Log4CSharp;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
+using Windows.ApplicationModel;
+using Windows.Management.Deployment;
+using System.Collections.ObjectModel;
+using System.Diagnostics;
+using System.Reflection;
+using System.Windows.Threading;
+using System.Windows.Input;
namespace CardCheckAssistant.ViewModels;
public class HomePageViewModel : ObservableObject, IDisposable
{
- private readonly DispatcherTimer scanDBTimer;
+ private readonly Microsoft.UI.Xaml.DispatcherTimer scanDBTimer;
private SQLDBService dbService;
private FilterOptions currentFilter;
@@ -40,7 +43,7 @@ public HomePageViewModel()
{
}
- scanDBTimer = new DispatcherTimer();
+ scanDBTimer = new Microsoft.UI.Xaml.DispatcherTimer();
scanDBTimer.Tick += OnTimedEvent;
scanDBTimer.Interval = new TimeSpan(0,0,10);
scanDBTimer.Stop();
@@ -412,6 +415,8 @@ private async Task PostPageLoadedCommand_Executed()
{
try
{
+ await CheckForUpdates();
+
using SettingsReaderWriter settings = new SettingsReaderWriter();
dbService = new SQLDBService(
settings.DefaultSettings.SelectedDBServerName,
@@ -667,6 +672,68 @@ private async void OnTimedEvent(object? _, object e)
}
}
+ public async Task CheckForUpdates()
+ {
+ try
+ {
+ PackageManager package = new PackageManager();
+ Package currentPackage = package.FindPackageForUser(string.Empty, Package.Current.Id.FullName);
+ PackageUpdateAvailabilityResult result = await currentPackage.CheckUpdateAvailabilityAsync();
+
+ switch (result.Availability)
+ {
+ case PackageUpdateAvailability.Available:
+ await App.MainRoot.MessageDialogAsync(
+ "Update wird installiert.\n",
+ "Es ist eine neue Version von CardCheckassistant verfügbar.\nSie wird nun heruntergalden und installiert...");
+
+ await InstallUpdate();
+ break;
+ case PackageUpdateAvailability.Required:
+ case PackageUpdateAvailability.NoUpdates:
+ case PackageUpdateAvailability.Unknown:
+ default:
+ break;
+ }
+ }
+ catch (Exception e)
+ {
+ LogWriter.CreateLogEntry(e);
+ }
+
+ }
+
+ private async Task InstallUpdate()
+ {
+ try
+ {
+ var pm = new PackageManager();
+ Package currentPackage = pm.FindPackageForUser(string.Empty, Package.Current.Id.FullName);
+ var deploymentTask = await pm.UpdatePackageAsync(new Uri("https://github.com/c3rebro/CardCheckAssistant/releases/latest/download/CardCheckAssistant_x64.appinstaller"), null, DeploymentOptions.None);
+
+ if (deploymentTask.ErrorText != null)
+ {
+ await App.MainRoot.MessageDialogAsync(
+ "Updatefehler\n",
+ string.Format("Bitte melde den folgenden Fehler an mich:\n{0}\n{1}", deploymentTask.ErrorText,deploymentTask.ExtendedErrorCode));
+ }
+ else
+ {
+ await App.MainRoot.MessageDialogAsync(
+ "Update Erfolgreich\n","Bitte beende Deine Arbeit und starte die Anwendung neu.");
+ }
+ }
+ catch
+ {
+ await App.MainRoot.MessageDialogAsync(
+ "Fehler:\n",
+ string.Format("Die Anwendung konnte nicht automatisch neu gestartet werden.\nBitte starte sie manuell neu."));
+ }
+
+ }
+
+
+
protected void Dispose(bool disposing)
{
if (!_disposed)