diff --git a/Pilz.Updating/Json/AppVersionStringJsonConverter.cs b/Pilz.Updating/Json/AppVersionStringJsonConverter.cs deleted file mode 100644 index 485a51c..0000000 --- a/Pilz.Updating/Json/AppVersionStringJsonConverter.cs +++ /dev/null @@ -1,81 +0,0 @@ -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; - -namespace Pilz.Updating.Json; - -public class AppVersionStringJsonConverter(bool serializeAsObject) : JsonConverter -{ - public AppVersionStringJsonConverter() : this(false) - { - } - - /// - /// Writes the JSON representation of the object. - /// - /// The to write to. - /// The value. - /// The calling serializer. - public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer) - { - if (value == null) - { - writer.WriteNull(); - return; - } - - if (serializeAsObject || value is not AppVersion appVersion) - writer.WriteValue(value); - else - writer.WriteValue(appVersion.ToString()); - } - - /// - /// Reads the JSON representation of the object. - /// - /// The to read from. - /// Type of the object. - /// The existing value of object being read. - /// The calling serializer. - /// The object value. - public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer) - { - if (reader.TokenType == JsonToken.Null) - return null; - - try - { - if (reader.TokenType == JsonToken.String) - { - var strValue = reader.Value?.ToString(); - - if (string.IsNullOrWhiteSpace(strValue)) - return null; - - return AppVersion.Parse(strValue); - - } - - if (reader.TokenType == JsonToken.StartObject) - return serializer.Deserialize(reader); - } - catch (Exception ex) - { - throw new JsonSerializationException("Error converting value {0} to type '{1}'.", ex); - } - - // we don't actually expect to get here. - throw new JsonSerializationException("Unexpected token {0} when parsing app version."); - } - - /// - /// Determines whether this instance can convert the specified object type. - /// - /// Type of the object. - /// - /// true if this instance can convert the specified object type; otherwise, false. - /// - public override bool CanConvert(Type objectType) - { - return objectType == typeof(AppVersion); - } -} diff --git a/Pilz.Updating/Pilz.Updating.csproj b/Pilz.Updating/Pilz.Updating.csproj index fc396c4..54c1010 100644 --- a/Pilz.Updating/Pilz.Updating.csproj +++ b/Pilz.Updating/Pilz.Updating.csproj @@ -7,7 +7,7 @@ - 4.2.1 + 4.2.2 diff --git a/Pilz.Updating/UpdatePackageInfo.cs b/Pilz.Updating/UpdatePackageInfo.cs index 381a24c..e8bce98 100644 --- a/Pilz.Updating/UpdatePackageInfo.cs +++ b/Pilz.Updating/UpdatePackageInfo.cs @@ -1,11 +1,13 @@ using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using Pilz.Json; namespace Pilz.Updating; public class UpdatePackageInfo(AppVersion version, string address) { public string? Name { get; set; } + [JsonConverter(typeof(AppVersionStringJsonConverter))] public AppVersion Version { get; set; } = version; public UpdateNotes Notes { get; } = new(); public string Address { get; set; } = address;