using System; using System.Collections.Generic; using System.Text.Json; using System.Text.Json.Serialization; using Lidarr.Http.REST; namespace Lidarr.Api.V1.Localization { public class LocalizationResourceSerializer : JsonConverter> { public override Dictionary Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { throw new NotImplementedException(); } public override void Write(Utf8JsonWriter writer, Dictionary dictionary, JsonSerializerOptions options) { writer.WriteStartObject(); foreach (var (key, value) in dictionary) { var propertyName = key; writer.WritePropertyName(propertyName); writer.WriteStringValue(value); } writer.WriteEndObject(); } } public class LocalizationResource : RestResource { [JsonConverter(typeof(LocalizationResourceSerializer))] public Dictionary Strings { get; set; } } public static class LocalizationResourceMapper { public static LocalizationResource ToResource(this Dictionary localization) { if (localization == null) { return null; } return new LocalizationResource { Strings = localization, }; } } }