Esempio n. 1
0
        private async Task <DialogTurnResult> DTMFIntroStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
        {
            // Use the text provided in FinalStepAsync or the default if it is the first time.
            var promptMessage = VoiceFactory.TextAndVoice(IntroMessage, InputHints.ExpectingInput);

            return(await stepContext.PromptAsync(nameof(TextPrompt), new PromptOptions { Prompt = promptMessage }, cancellationToken));
        }
        private async Task <DialogTurnResult> StateStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
        {
            var locationDetails = (StoreLocationViewModel)stepContext.Options;

            if (locationDetails.State == null)
            {
                //Build and send our prompt if the viewmodel is not populated
                var promptMessage = VoiceFactory.TextAndVoice(StateStepMsgText, InputHints.ExpectingInput);
                return(await stepContext.PromptAsync(nameof(TextPrompt), new PromptOptions { Prompt = promptMessage }, cancellationToken));
            }

            return(await stepContext.NextAsync(locationDetails.State, cancellationToken));
        }
Esempio n. 3
0
        private async Task <DialogTurnResult> OrderNumberStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
        {
            var orderDetails = (PurchaseOrderStatusViewModel)stepContext.Options;

            if (orderDetails.PONumber == null)
            {
                //Build and send the next prompt if the viewmodel is not populated
                var promptMessage = VoiceFactory.TextAndVoice(OrderNumberStepMsgText, InputHints.ExpectingInput);
                var retryMessage  = VoiceFactory.TextAndVoice(OrderNumberRetryStepMsgText, InputHints.ExpectingInput);
                return(await stepContext.PromptAsync(nameof(PurchaseOrderNumberPrompt), new PromptOptions { Prompt = promptMessage, RetryPrompt = retryMessage }, cancellationToken));
            }

            return(await stepContext.NextAsync(orderDetails.PONumber, cancellationToken));
        }
Esempio n. 4
0
        private async Task <DialogTurnResult> PolicyTypeStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
        {
            var leavePolicyDetails = (LeavePolicyViewModel)stepContext.Options;

            if (leavePolicyDetails.LeaveOfAbscensePolicy == null)
            {
                //Build and send our prompt
                var promptMessage    = VoiceFactory.TextAndVoice(LeavePolicyStepMsgText, InputHints.ExpectingInput);
                var retryMessageText = $"{LeavePolicyRetryMsgText} {LeavePolicyStepMsgText}";
                var retryMessage     = VoiceFactory.TextAndVoice(retryMessageText, InputHints.ExpectingInput);

                var choices = new List <Choice>()
                {
                    new Choice()
                    {
                        Value = "Bereavement leave", Synonyms = new List <string>()
                        {
                            "bereavement", "bereavement leave", "bereavement leave policy"
                        }
                    },
                    new Choice()
                    {
                        Value = "Sabbatical", Synonyms = new List <string>()
                        {
                            "sabbatical", "sabbatical policy", "sabbatical leave policy"
                        }
                    },
                    new Choice()
                    {
                        Value = "Parental leave", Synonyms = new List <string>()
                        {
                            "parental", "parental leave", "parental leave policy"
                        }
                    },
                };

                return(await stepContext.PromptAsync(
                           nameof(ChoicePrompt),
                           new PromptOptions
                {
                    Prompt = promptMessage,
                    Choices = choices,
                    RetryPrompt = retryMessage
                },
                           cancellationToken));
            }

            return(await stepContext.NextAsync(leavePolicyDetails.LeaveOfAbscensePolicy, cancellationToken));
        }