Files
MeWeb/src/MeWeb.Core/Checks/SharePayload.cs
T

30 lines
979 B
C#
Raw Normal View History

using System.Text.Json;
using System.Text.Json.Serialization;
namespace MeWeb.Core.Checks;
public class SharePayload
{
public string App { get; set; }
public string Platform { get; set; }
public string Language { get; set; }
public DateTimeOffset CheckedAt { get; set; }
public List<Finding> Findings { get; set; } = [];
public static SharePayload From(RunReport run, string app, string platform, string language) => new()
{
App = app,
Platform = platform,
Language = language,
CheckedAt = run.StartedAt,
Findings = [.. run.Findings.OrderBy(f => f.Id)],
};
public string ToJson() => JsonSerializer.Serialize(this, ShareJsonContext.Default.SharePayload);
}
[JsonSourceGenerationOptions(JsonSerializerDefaults.Web, WriteIndented = true, UseStringEnumConverter = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
[JsonSerializable(typeof(SharePayload))]
public partial class ShareJsonContext : JsonSerializerContext
{
}