public static class AgathaExtensions
{
public static Lazy<K> Prepare<T,K>(this IRequestDispatcher dispatcher, T request)
where K : Response
where T : Request
{
var key = Guid.NewGuid().ToString();
dispatcher.Add(key, request);
return new Lazy<K>(() => dispatcher.Get<K>(key));
}
}