mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2026-04-20 22:14:34 -04:00
New: Use ASP.NET Core instead of Nancy
(cherry picked from commit 58ddbcd77e17ef95ecfad4b746084ee9326116f3)
This commit is contained in:
@@ -2,6 +2,7 @@ using System;
|
||||
using System.IO;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace NzbDrone.Common.Serializer
|
||||
{
|
||||
@@ -15,15 +16,19 @@ namespace NzbDrone.Common.Serializer
|
||||
|
||||
public static JsonSerializerOptions GetSerializerSettings()
|
||||
{
|
||||
var serializerSettings = new JsonSerializerOptions
|
||||
{
|
||||
AllowTrailingCommas = true,
|
||||
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
|
||||
PropertyNameCaseInsensitive = true,
|
||||
DictionaryKeyPolicy = JsonNamingPolicy.CamelCase,
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
|
||||
WriteIndented = true
|
||||
};
|
||||
var settings = new JsonSerializerOptions();
|
||||
ApplySerializerSettings(settings);
|
||||
return settings;
|
||||
}
|
||||
|
||||
public static void ApplySerializerSettings(JsonSerializerOptions serializerSettings)
|
||||
{
|
||||
serializerSettings.AllowTrailingCommas = true;
|
||||
serializerSettings.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
|
||||
serializerSettings.PropertyNameCaseInsensitive = true;
|
||||
serializerSettings.DictionaryKeyPolicy = JsonNamingPolicy.CamelCase;
|
||||
serializerSettings.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
|
||||
serializerSettings.WriteIndented = true;
|
||||
|
||||
serializerSettings.Converters.Add(new JsonStringEnumConverter(JsonNamingPolicy.CamelCase, true));
|
||||
serializerSettings.Converters.Add(new STJVersionConverter());
|
||||
@@ -31,8 +36,6 @@ namespace NzbDrone.Common.Serializer
|
||||
serializerSettings.Converters.Add(new STJTimeSpanConverter());
|
||||
serializerSettings.Converters.Add(new STJUtcConverter());
|
||||
serializerSettings.Converters.Add(new DictionaryStringObjectConverter());
|
||||
|
||||
return serializerSettings;
|
||||
}
|
||||
|
||||
public static T Deserialize<T>(string json)
|
||||
@@ -85,5 +88,15 @@ namespace NzbDrone.Common.Serializer
|
||||
JsonSerializer.Serialize(writer, (object)model, options);
|
||||
}
|
||||
}
|
||||
|
||||
public static Task SerializeAsync<TModel>(TModel model, Stream outputStream, JsonSerializerOptions options = null)
|
||||
{
|
||||
if (options == null)
|
||||
{
|
||||
options = SerializerSettings;
|
||||
}
|
||||
|
||||
return JsonSerializer.SerializeAsync(outputStream, (object)model, options);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user