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