using System.Text.Json.Serialization;
using MultiTenant.api.Enums;
public class MatchStatusEnumJsonConverter : JsonConverter<MatchStatusEnum>
public override MatchStatusEnum Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
string value = reader.GetString();
"true-positive" => MatchStatusEnum.TruePositive,
"false-positive" => MatchStatusEnum.FalsePositive,
"discarded" => MatchStatusEnum.Discarded,
"open" => MatchStatusEnum.Open,
_ => throw new JsonException($"Invalid MatchStatusEnum value: {value}")
public override void Write(Utf8JsonWriter writer, MatchStatusEnum value, JsonSerializerOptions options)
string stringValue = value switch
MatchStatusEnum.TruePositive => "true-positive",
MatchStatusEnum.FalsePositive => "false-positive",
MatchStatusEnum.Discarded => "discarded",
MatchStatusEnum.Open => "open",
_ => throw new JsonException($"Unexpected MatchStatusEnum value: {value}")
writer.WriteStringValue(stringValue);
using System.Text.Json.Serialization;
public int Id { get; set; }
[JsonConverter(typeof(MatchStatusEnumJsonConverter))]
public MatchStatusEnum CurrentStatus { get; set; }
public int QRCode { get; set; }
public string ResourceUri { get; set; }
builder.Services.AddControllers()
.AddJsonOptions(options =>
options.JsonSerializerOptions.Converters.Add(new MatchStatusEnumJsonConverter());