private async Task <DialogTurnResult> AskForSausageKindAndSauceStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { var order = await conversationState.GetOrder(stepContext.Context); if (order.IsSausageKindAndSauceDefined) { return(await stepContext.EndDialogAsync(order, cancellationToken)); } string question = string.Empty; if (!order.SausageKind.HasValue) { question += Resource.WhichSausage; } if (!order.Sauce.HasValue) { question += " " + Resource.WhichSauce; } question = question.Trim(); var promptMessage = MessageFactory.Text(question, question, InputHints.ExpectingInput); return(await stepContext.PromptAsync(nameof(TextPrompt), new PromptOptions { Prompt = promptMessage }, cancellationToken)); }
private async Task <DialogTurnResult> ProceedWithOrderingStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { var result = await recognizer.RecognizeAsync(stepContext.Context, cancellationToken); var order = await conversationState.GetOrder(stepContext.Context); if (result.IsSpecifyOrderIntent) { order.MergeWith(result.ToOrder()); } return(await stepContext.BeginDialogAsync(orderingDialog.Id, order, cancellationToken)); }
private async Task <DialogTurnResult> GetOrderChangeStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { var result = await recognizer.RecognizeAsync(stepContext.Context, cancellationToken); var order = await conversationState.GetOrder(stepContext.Context); if (result.IsSpecifyOrderIntent) { order.MergeWith(result.ToOrder()); return(await stepContext.ReplaceDialogAsync(orderingDialog.Id, order, cancellationToken)); } else { var message = MessageFactory.Text(Resource.IDidNotUnderstandYou, Resource.IDidNotUnderstandYou, InputHints.IgnoringInput); await stepContext.Context.SendActivityAsync(message, cancellationToken); return(await stepContext.ReplaceDialogAsync(nameof(ChangeOrderDialog), order, cancellationToken)); } }
private async Task <DialogTurnResult> ChooseSausageKindAndSauceStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { var order = await conversationState.GetOrder(stepContext.Context); return(await stepContext.BeginDialogAsync(chooseSausageKindAndSauceDialog.Id, order /*stepContext.Options*/, cancellationToken)); }