async Task IPostToBot.PostAsync <T>(T item, CancellationToken token) { try { if (dialogTask.Frames.Count == 0) { var root = this.makeRoot(); var loop = root.Loop(); dialogTask.Call(loop, null); await dialogTask.PollAsync(token); } await dialogTask.PostAsync(item, token); } catch { dialogTask.Reset(); throw; } }