ConferenceBroadcast.Web.Controllers.ConferenceController.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 isMuted = digits.Equals("1"); // Listener
            var canControlConferenceOnEnter = digits.Equals("3"); // Moderator

            var response = new TwilioResponse();
            response.Say("You have joined the conference");
            response.Dial()
                .DialConference("RapidResponseRoom", new
                {
                    waitUrl = "http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient",
                    muted = isMuted,
                    startConferenceOnEnter = canControlConferenceOnEnter,
                    endConferenceOnExit = canControlConferenceOnEnter
                });

            return TwiML(response);
        }

Usage Example

        public void GivenAConnectAction_ThenGeneratesTheAppropriateResponse(
            string selectedOption,
            string expectedMute,
            string expectedStartConferenceOnEnter,
            string expectedEndConferenceOnEnter)
        {
            var controller = new ConferenceController();
            var result = controller.Connect(selectedOption);

            result.ExecuteResult(MockControllerContext.Object);
            var document = BuildDocument();

            var conferenceAttributes = document
                .SelectSingleNode("Response/Dial/Conference").Attributes;
            Assert.That(conferenceAttributes["muted"].Value,
                Is.EqualTo(expectedMute));
            Assert.That(conferenceAttributes["startConferenceOnEnter"].Value,
                Is.EqualTo(expectedStartConferenceOnEnter));
            Assert.That(conferenceAttributes["endConferenceOnExit"].Value,
                Is.EqualTo(expectedEndConferenceOnEnter));
        }