IVRRecording.Web.Controllers.ExtensionController.Connect C# (CSharp) Method

Connect() private method

private Connect ( string digits ) : System.Web.Mvc.ActionResult
digits string
return System.Web.Mvc.ActionResult
        public ActionResult Connect(string digits)
        {
            var extension = digits;
            var agent = FindAgentByExtension(extension);
            if (agent == null)
            {
                return RedirectToMenu();
            }

            var response = new TwilioResponse();

            response.Say("You'll be connected shortly to your planet.",
                new { voice = "alice", language = "en-GB" });

            var number = new Number(agent.PhoneNumber, new { url = Url.Action("ScreenCall", "Agent")});
            response.Dial(number, new {action = Url.Action("Call", "Agent", new {agentId = agent.Id})});

            return TwiML(response);
        }

Usage Example

        public void GivenAConnectAction_WhenAnAgentIsNotFound_ThenRespondsRedirectingToMainMenu()
        {
            var mockRepository = new Mock<IAgentRepository>();
            mockRepository.Setup(r => r.FindByExtension(It.IsAny<string>()));
            var controller = new ExtensionController(mockRepository.Object) {Url = Url};
            var result = controller.Connect("*");

            result.ExecuteResult(MockControllerContext.Object);

            var document = LoadXml(Result.ToString());

            Assert.That(document.SelectSingleNode("Response/Redirect").InnerText,
                Is.EqualTo("/IVR/Welcome"));
        }
All Usage Examples Of IVRRecording.Web.Controllers.ExtensionController::Connect