using System.Collections.Generic;
private static readonly CallbackManager _callbackManager = new();
public static void Main()
var purchase = new Purchase()
PaymentMethod = "Bitcoin"
string callbackId = _callbackManager.Add(purchase);
public static void OnCallback(string callbackId)
var purchase = (Purchase)_callbackManager.Get(callbackId);
Console.WriteLine(purchase.PaymentMethod);
public object User { get; set; }
public List<object> Items { get; set; }
public object PaymentMethod { get; set; }
public class CallbackManager
private readonly Dictionary<string, object> _callbacks = new();
public string Add(object obj)
string randomId = Random.Shared.NextInt64().ToString();
_callbacks.Add(randomId, obj);
public object Get(string id)