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; } }
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; } }
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; } }
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); }