public static void Main()
Console.WriteLine("Hello World");
internal class KeyGenerator
internal string Key { get; private set; }
internal string PublicPersonId { get; private set; }
[System.Text.Json.Serialization.JsonConstructor]
private KeyGenerator(string _key,string _publicPersonId)
PublicPersonId = _publicPersonId;
private KeyGenerator(string publicPersonId)
Key = $"EXT-{Guid.NewGuid():D}".ToUpper();
PublicPersonId = publicPersonId;
internal static KeyGenerator New(string publicPersonId) => new(publicPersonId);
var selfSerialized = System.Text.Json.JsonSerializer.Serialize(this);
var _keyBytes = System.Text.Encoding.UTF8.GetBytes(selfSerialized);
return Convert.ToBase64String(_keyBytes);
internal static KeyGenerator Decode(string externalKey)
var _keyBytes = Convert.FromBase64String(externalKey);
using MemoryStream stream = new(_keyBytes);
return System.Text.Json.JsonSerializer.Deserialize<KeyGenerator>(stream);