Beta Release 0.7

Migrating to ActivityHandlerDialog

Step-by-step instructions for migrating a dialog from RouterDialog to ActivityHandlerDialog


  1. Change MainDialog to derive from ActivityHandlerDialog
  2. Rename RouteAsync method to OnMessageActivityAsync
    • Remove this line:
        var turnResult = EndOfTurn;
    • Remove this code block:
        if (turnResult != EndOfTurn)
            await CompleteAsync(dc);
  3. Rename OnEventAsync to OnEventActivityAsync
  4. In OnCancel
    • Remove the following:
        await CompleteAsync(dc);
        await dc.CancelAllDialogsAsync();
    • Change interruption action to InterruptionAction.End
  5. In OnHelp
    • Change interruption action to InterruptionAction.Resume
  6. In OnLogout
    • Change interruption action to InterruptionAction.End
  7. Replace OnStartAsync with the following:

     // Runs when the dialog stack is empty, and a new member is added to the conversation. Can be used to send an introduction activity.
     protected override async Task OnMembersAddedAsync(DialogContext innerDc, CancellationToken cancellationToken = default)
         await innerDc.Context.SendActivityAsync(_responseManager.GetResponse(MainResponses.WelcomeMessage));
  8. Rename CompleteAsync to OnDialogComleteAsync and change DialogTurnResult to object.