24 lines
922 B
C#
24 lines
922 B
C#
using System.Text.Encodings.Web;
|
|||
|
|
using System.Text.Json;
|
||
|
|
using System.Text.Json.Serialization;
|
||
|
|
|
||
|
|
namespace PrivaPub.Api.Mastodon.Infrastructure
|
||
|
|
{
|
||
|
|
public static class MastodonJson
|
||
|
|
{
|
||
|
|
public static readonly JsonSerializerOptions Options = new()
|
||
|
|
{
|
||
|
|
PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower,
|
||
|
|
DictionaryKeyPolicy = default,
|
||
|
|
DefaultIgnoreCondition = JsonIgnoreCondition.Never,
|
||
|
|
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
|
||
|
|
Converters = { new JsonStringEnumConverter(JsonNamingPolicy.SnakeCaseLower) }
|
||
|
|
};
|
||
|
|
|
||
|
|
public static string Time(DateTime value) =>
|
||
|
|
DateTime.SpecifyKind(value, DateTimeKind.Utc).ToString("yyyy-MM-ddTHH:mm:ss.fffZ", System.Globalization.CultureInfo.InvariantCulture);
|
||
|
|
|
||
|
|
public static string Day(DateTime value) =>
|
||
|
|
DateTime.SpecifyKind(value, DateTimeKind.Utc).Date.ToString("yyyy-MM-ddT00:00:00.000Z", System.Globalization.CultureInfo.InvariantCulture);
|
||
|
|
}
|
||
|
|
}
|