26 lines
909 B
C#
26 lines
909 B
C#
using System.Text.Json;
|
|
using System.Text.Json.Serialization;
|
|
using PatchProbe.Shared.Models;
|
|
|
|
namespace PatchProbe.Shared.Serialization;
|
|
|
|
public static class PayloadSerializer
|
|
{
|
|
public static readonly JsonSerializerOptions Options = new()
|
|
{
|
|
WriteIndented = true,
|
|
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
|
|
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
|
|
Converters = { new JsonStringEnumConverter(JsonNamingPolicy.CamelCase) }
|
|
};
|
|
|
|
public static string Serialize(PatchProbePayload payload) =>
|
|
JsonSerializer.Serialize(payload, Options);
|
|
|
|
public static async Task SerializeToFileAsync(PatchProbePayload payload, string path, CancellationToken cancellationToken = default)
|
|
{
|
|
await using var stream = File.Create(path);
|
|
await JsonSerializer.SerializeAsync(stream, payload, Options, cancellationToken);
|
|
}
|
|
}
|