У меня проблема с моим методом TaskOnTurn. Когда я запускаю бота, он отправляет приветственное сообщение и запускается новый диалог из-за
if(!turnContext.Responded)
Теперь, пока im находится в диалоговом окне, он снова переходит к последнему оператору if, и запускается новый диалог, в то время как im уже находится в одном. Как работает! TurnContext.Responded? Затем я попытался запустить диалог в if (turnContext.Activity.MembersAdded! = Null) в await SendWecomeMessage. Это не сработало. Затем он отправил 1 приветственное сообщение и запустил 2 диалога. Это меня тоже смутило.
public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
{
if (turnContext == null)
{
throw new ArgumentNullException(nameof(turnContext));
}
var activity = turnContext.Activity;
var dc = await _dialogs.CreateContextAsync(turnContext, cancellationToken);
if (turnContext.Activity.Type == ActivityTypes.Message)
{
await dc.ContinueDialogAsync(cancellationToken);
}
else if (turnContext.Activity.Type == ActivityTypes.ConversationUpdate)
{
if (turnContext.Activity.MembersAdded != null)
{
await SendWelcomeMessageAsync(turnContext, cancellationToken);
}
}
else
{
await turnContext.SendActivityAsync($"{turnContext.Activity.Type} event detected", cancellationToken: cancellationToken);
}
if (!turnContext.Responded)
{
await dc.BeginDialogAsync(ReservationDialog, cancellationToken);
}
}