using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Dpz.Core.Infrastructure;
namespace Dpz.Core.Service.ObjectStorage.VideoHandle;
public class AvOptsConverter : JsonConverter<AvOpts>
{
public override AvOpts? Read(
ref Utf8JsonReader reader,
Type typeToConvert,
JsonSerializerOptions options
)
{
var value = reader.GetString();
if (!string.IsNullOrEmpty(value))
{
var bytes = DpzAppBuilderExtensions.Base64StringToBytes(value);
var json = Encoding.UTF8.GetString(bytes);
try
{
var list = JsonSerializer.Deserialize<List<OptionType>>(json) ?? [];
return new AvOpts(list);
}
catch (Exception)
{
// ignored
}
}
return [];
}
public override void Write(Utf8JsonWriter writer, AvOpts value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToString());
}
}