public async Task MainDialog_DynamicMainDialog() { var convoState = new ConversationState(new MemoryStorage()); var adapter = new TestAdapter() .Use(new AutoSaveStateMiddleware(convoState)); var mainDialog = new MainDialog(convoState.CreateProperty <DialogState>("dialogState")); mainDialog .AddDialog(WaterfallTests.Create_Waterfall3()) .AddDialog(WaterfallTests.Create_Waterfall4()) .AddDialog(WaterfallTests.Create_Waterfall5()); await new TestFlow(adapter, async(turnContext, cancellationToken) => { await mainDialog.RunAsync(turnContext).ConfigureAwait(false); }) .Send("hello") .AssertReply("step1") .AssertReply("step1.1") .Send("hello") .AssertReply("step1.2") .Send("hello") .AssertReply("step2") .AssertReply("step2.1") .Send("hello") .AssertReply("step2.2") .StartTestAsync(); }
protected override Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken) { if (turnContext.Activity.HasFileAttachments()) { return(_botService.HandleFileAttachments(turnContext, cancellationToken)); } // continue process for text messages return(_mainDialog.RunAsync(turnContext, _conversationState.CreateProperty <DialogState>(nameof(TeamsTalentMgmtBot)), cancellationToken)); }
protected override async Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken) { await Dialog.RunAsync(turnContext, ConversationState.CreateProperty <DialogState>(nameof(DialogState)), cancellationToken); }
protected override Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken) { _logger.LogInformation("Running dialog with Message Activity."); return(_dialog.RunAsync(turnContext, _conversationState.CreateProperty <DialogState>(nameof(DialogState)), cancellationToken)); }