public Task <Unit> Handle(HandleIncomingMessageCommand request, CancellationToken cancellationToken) { if (new List <string> { "hey", "/start" }.Contains(request.Update.Message?.Text, StringComparer.CurrentCultureIgnoreCase)) { AppEntryFlow.InitRequestHandler(request.Update); return(Task.FromResult(Unit.Value)); } if (CurrentSessionHandler.NextQuestion.Equals(default(KeyValuePair <Question, Action <string> >))) { return(Task.FromResult(Unit.Value)); } if (CurrentSessionHandler.NextQuestion.Key == null) { return(Task.FromResult(Unit.Value)); } if (CurrentSessionHandler.NextQuestion.Key.IsEndSignal || CurrentSessionHandler.NextQuestion.Value == null) { CurrentSessionHandler.EndSession(request.Update); return(Task.FromResult(Unit.Value)); } HandleResponse(request.Update); return(Task.FromResult(Unit.Value)); }