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));
        }
Exemplo n.º 3
0
        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));
            }
        }
Exemplo n.º 4
0
        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));
        }