コード例 #1
0
 private void ProcessSupportSelection(RecognizeOutcomeEvent outcome, CallState callStateForClient)
 {
     if (outcome.RecognizeOutcome.Outcome != Outcome.Success)
     {
         outcome.ResultingWorkflow.Actions = new List<ActionBase> { CreateSupportMenu() };
         return;
     }
     switch (outcome.RecognizeOutcome.ChoiceOutcome.ChoiceName)
     {
         case SupportOutages:
             outcome.ResultingWorkflow.Actions = new List<ActionBase>
                 {
                     GetPromptForText(IvrOptions.CurrentOutages),
                     CreateSupportMenu()
                 };
             break;
         case SupportConsultant:
             SetupRecording(outcome.ResultingWorkflow);
             break;
         default:
             callStateForClient.InitiallyChosenMenuOption = null;
             SetupInitialMenu(outcome.ResultingWorkflow);
             break;
     }
 }
コード例 #2
0
        private void ProcessMainMenuSelection(RecognizeOutcomeEvent outcome, CallState callStateForClient)
        {
            if (outcome.RecognizeOutcome.Outcome != Outcome.Success)
            {
                SetupInitialMenu(outcome.ResultingWorkflow);
                return;
            }

            switch (outcome.RecognizeOutcome.ChoiceOutcome.ChoiceName)
            {
                case NewClient:
                    callStateForClient.InitiallyChosenMenuOption = NewClient;
                    outcome.ResultingWorkflow.Actions = new List<ActionBase> { CreateNewClientMenu() };
                    break;
                case Support:
                    callStateForClient.InitiallyChosenMenuOption = Support;
                    outcome.ResultingWorkflow.Actions = new List<ActionBase> { CreateSupportMenu() };
                    break;
                case Payments:
                    callStateForClient.InitiallyChosenMenuOption = Payments;
                    outcome.ResultingWorkflow.Actions = new List<ActionBase> { CreatePaymentsMenu() };
                    break;
                case MoreInfo:
                    callStateForClient.InitiallyChosenMenuOption = MoreInfo;
                    outcome.ResultingWorkflow.Actions = new List<ActionBase> { GetPromptForText(IvrOptions.MoreInfoPrompt) };
                    break;
                default:
                    SetupInitialMenu(outcome.ResultingWorkflow);
                    break;
            }
        }
コード例 #3
0
 private void ProcessPaymentsSelection(RecognizeOutcomeEvent outcome, CallState callStateForClient)
 {
     if (outcome.RecognizeOutcome.Outcome != Outcome.Success)
     {
         outcome.ResultingWorkflow.Actions = new List<ActionBase> { CreatePaymentsMenu() };
         return;
     }
     switch (outcome.RecognizeOutcome.ChoiceOutcome.ChoiceName)
     {
         case PaymentDetails:
             outcome.ResultingWorkflow.Actions = new List<ActionBase>
                 {
                     GetPromptForText(IvrOptions.PaymentDetailsMessage),
                     CreatePaymentsMenu()
                 };
             break;
         case PaymentNotVisible:
             SetupRecording(outcome.ResultingWorkflow);
             break;
         default:
             callStateForClient.InitiallyChosenMenuOption = null;
             SetupInitialMenu(outcome.ResultingWorkflow);
             break;
     }
 }
コード例 #4
0
        private Task OnRecognizeCompleted(RecognizeOutcomeEvent recognizeOutcomeEvent)
        {
            var callStateForClient = _callStateMap[recognizeOutcomeEvent.ConversationResult.Id];

            switch (callStateForClient.InitiallyChosenMenuOption)
            {
                case null:
                    ProcessMainMenuSelection(recognizeOutcomeEvent, callStateForClient);
                    break;
                case NewClient:
                    ProcessNewClientSelection(recognizeOutcomeEvent, callStateForClient);
                    break;
                case Support:
                    ProcessSupportSelection(recognizeOutcomeEvent, callStateForClient);
                    break;
                case Payments:
                    ProcessPaymentsSelection(recognizeOutcomeEvent, callStateForClient);
                    break;
                default:
                    SetupInitialMenu(recognizeOutcomeEvent.ResultingWorkflow);
                    break;
            }
            return Task.FromResult(true);
        }