From 4ac18dd0236bd0938a20ca1b766def4dd17cbf6a Mon Sep 17 00:00:00 2001 From: Qstick Date: Thu, 16 Jul 2020 21:14:37 -0400 Subject: [PATCH] Fixed: In some cases MinVotes is int from v0.2, causes migration failure --- .../Datastore/Converters/StringConverter.cs | 26 +++++++++++++++++++ .../Migration/166_fix_tmdb_list_config.cs | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 src/NzbDrone.Core/Datastore/Converters/StringConverter.cs diff --git a/src/NzbDrone.Core/Datastore/Converters/StringConverter.cs b/src/NzbDrone.Core/Datastore/Converters/StringConverter.cs new file mode 100644 index 000000000..f0315f832 --- /dev/null +++ b/src/NzbDrone.Core/Datastore/Converters/StringConverter.cs @@ -0,0 +1,26 @@ +using System; +using System.Text.Json; +using System.Text.Json.Serialization; + +public class StringConverter : JsonConverter +{ + public override string Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + if (reader.TokenType == JsonTokenType.Number) + { + var stringValue = reader.GetInt32(); + return stringValue.ToString(); + } + else if (reader.TokenType == JsonTokenType.String) + { + return reader.GetString(); + } + + throw new System.Text.Json.JsonException(); + } + + public override void Write(Utf8JsonWriter writer, string value, JsonSerializerOptions options) + { + writer.WriteStringValue(value); + } +} diff --git a/src/NzbDrone.Core/Datastore/Migration/166_fix_tmdb_list_config.cs b/src/NzbDrone.Core/Datastore/Migration/166_fix_tmdb_list_config.cs index e56d5ce3f..ffe3b2e50 100644 --- a/src/NzbDrone.Core/Datastore/Migration/166_fix_tmdb_list_config.cs +++ b/src/NzbDrone.Core/Datastore/Migration/166_fix_tmdb_list_config.cs @@ -25,6 +25,8 @@ namespace NzbDrone.Core.Datastore.Migration PropertyNamingPolicy = JsonNamingPolicy.CamelCase, WriteIndented = true }; + + _serializerSettings.Converters.Add(new StringConverter()); } protected override void MainDbUpgrade()