Promise pattern implementation for c#