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)