You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.5 KiB
53 lines
1.5 KiB
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<Dictionary<string, string>>
|
|
{
|
|
public override Dictionary<string, string> Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public override void Write(Utf8JsonWriter writer, Dictionary<string, string> 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<string, string> Strings { get; set; }
|
|
}
|
|
|
|
public static class LocalizationResourceMapper
|
|
{
|
|
public static LocalizationResource ToResource(this Dictionary<string, string> localization)
|
|
{
|
|
if (localization == null)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
return new LocalizationResource
|
|
{
|
|
Strings = localization,
|
|
};
|
|
}
|
|
}
|
|
}
|