diff --git a/Pilz.Updating.Client/Pilz.Updating.Client.csproj b/Pilz.Updating.Client/Pilz.Updating.Client.csproj index b729892..13f26b4 100644 --- a/Pilz.Updating.Client/Pilz.Updating.Client.csproj +++ b/Pilz.Updating.Client/Pilz.Updating.Client.csproj @@ -3,6 +3,7 @@ net8.0 enable + enable diff --git a/Pilz.Updating.Client/UpdateClient.cs b/Pilz.Updating.Client/UpdateClient.cs index 7b8defc..cf1c607 100644 --- a/Pilz.Updating.Client/UpdateClient.cs +++ b/Pilz.Updating.Client/UpdateClient.cs @@ -6,7 +6,7 @@ public class UpdateClient(string updateUrl, AppVersion currentVersion, Channels { // E v e n t s - public event UpdateClientStatusChangedEventHandler OnStatusChanged; + public event UpdateClientStatusChangedEventHandler? OnStatusChanged; // F i e l d s @@ -18,8 +18,8 @@ public class UpdateClient(string updateUrl, AppVersion currentVersion, Channels public string UpdateUrl { get; private set; } = updateUrl; public AppVersion CurrentVersion { get; private set; } = currentVersion; public Channels MinimumChannel { get; private set; } = (Channels)Math.Max((int)minimumChannel, (int)currentVersion.Channel); - public UpdateInfo UpdateInfo { get; private set; } = null; - public UpdatePackageInfo UpdatePackageInfo { get; private set; } = null; + public UpdateInfo? UpdateInfo { get; private set; } + public UpdatePackageInfo? UpdatePackageInfo { get; private set; } public string HostApplicationPath { get; set; } = string.Empty; public string ApplicationName { get; set; } = string.Empty; public bool InstallAsAdmin { get; set; } = false; @@ -51,7 +51,7 @@ public class UpdateClient(string updateUrl, AppVersion currentVersion, Channels { var latestVersion = await CheckForUpdate(); - if (HasUpdates) + if (HasUpdates && latestVersion is not null) await UpdateInteractive(latestVersion); } @@ -63,14 +63,14 @@ public class UpdateClient(string updateUrl, AppVersion currentVersion, Channels // F e a t u r e s - public async Task GetUpdateInfo() + public async Task GetUpdateInfo() { string str = await WebClient.GetStringAsync(UpdateUrl); var info = UpdateInfo.Parse(str); return info; } - private async Task CheckForUpdate() + private async Task CheckForUpdate() { RaiseStatusChanged(UpdateStatus.Searching, UpdateStatusEvent.PreEvent); @@ -82,29 +82,26 @@ public class UpdateClient(string updateUrl, AppVersion currentVersion, Channels return CheckForUpdate(UpdateInfo); } - private UpdatePackageInfo CheckForUpdate(UpdateInfo updateInfo) + private UpdatePackageInfo? CheckForUpdate(UpdateInfo updateInfo) { - UpdatePackageInfo foundPkgInfo = null; var latestVersion = CurrentVersion; foreach (UpdatePackageInfo pkgInfo in updateInfo.Packages) { if (pkgInfo.Version.Channel <= MinimumChannel && pkgInfo.Version > latestVersion) { - foundPkgInfo = pkgInfo; + UpdatePackageInfo = pkgInfo; latestVersion = pkgInfo.Version; } } - UpdatePackageInfo = foundPkgInfo; - if (!RaiseStatusChanged(UpdateStatus.Searching, UpdateStatusEvent.PostEvent, true)) { UpdatePackageInfo = null; return null; } - return foundPkgInfo; + return UpdatePackageInfo; } public async Task DownloadPackageAsync(UpdatePackageInfo package) @@ -171,7 +168,7 @@ public class UpdateClient(string updateUrl, AppVersion currentVersion, Channels RaiseStatusChanged(UpdateStatus.Copying, UpdateStatusEvent.PreEvent); var dataPathDir = new DirectoryInfo(dataPath); var destDir = new DirectoryInfo(HostApplicationPath); - General.CopyFiles(dataPathDir, destDir); + Utils.CopyFiles(dataPathDir, destDir); RaiseStatusChanged(UpdateStatus.Copying, UpdateStatusEvent.PostEvent); // Delete Package diff --git a/Pilz.Updating/Pilz.Updating.csproj b/Pilz.Updating/Pilz.Updating.csproj index 7100d4d..0a0fc35 100644 --- a/Pilz.Updating/Pilz.Updating.csproj +++ b/Pilz.Updating/Pilz.Updating.csproj @@ -3,7 +3,7 @@ net8.0 enable - annotations + enable diff --git a/Pilz.Updating/UpdateInfo.cs b/Pilz.Updating/UpdateInfo.cs index a4ebef1..90534a1 100644 --- a/Pilz.Updating/UpdateInfo.cs +++ b/Pilz.Updating/UpdateInfo.cs @@ -6,7 +6,7 @@ public class UpdateInfo { public List Packages { get; set; } = []; - public static UpdateInfo Parse(string str) + public static UpdateInfo? Parse(string str) { return JsonConvert.DeserializeObject(str); } diff --git a/Pilz.Updating/UpdateNotes.cs b/Pilz.Updating/UpdateNotes.cs index f698361..f92aa60 100644 --- a/Pilz.Updating/UpdateNotes.cs +++ b/Pilz.Updating/UpdateNotes.cs @@ -7,9 +7,9 @@ public class UpdateNotes [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] public UpdateNotesMode Mode { get; set; } = UpdateNotesMode.None; - public string ExternalUrl { get; set; } + public string? ExternalUrl { get; set; } - public string ContentUrl { get; set; } + public string? ContentUrl { get; set; } [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] public UpdateNotesContentType ContentType { get; set; } = UpdateNotesContentType.PlainText; diff --git a/Pilz.Updating/UpdatePackageInfo.cs b/Pilz.Updating/UpdatePackageInfo.cs index 2af4147..80119e3 100644 --- a/Pilz.Updating/UpdatePackageInfo.cs +++ b/Pilz.Updating/UpdatePackageInfo.cs @@ -1,9 +1,9 @@ namespace Pilz.Updating; -public class UpdatePackageInfo +public class UpdatePackageInfo(AppVersion version, string packagelink) { - public string Name { get; set; } - public AppVersion Version { get; set; } + public string? Name { get; set; } + public AppVersion Version { get; set; } = version; public UpdateNotes Notes { get; } = new(); - public string Packagelink { get; set; } + public string Packagelink { get; set; } = packagelink; } \ No newline at end of file