/// <summary>
        /// Extracting event from the json.
        /// </summary>
        /// <param name="content"></param>
        /// <returns></returns>
        public CallingServerEventBase ExtractEvent(string content)
        {
            CloudEvent cloudEvent = CloudEvent.Parse(BinaryData.FromString(content));

            if (cloudEvent != null && cloudEvent.Data != null)
            {
                if (cloudEvent.Type.Equals(CallingServerEventType.CallConnectionStateChangedEvent.ToString()))
                {
                    return(CallConnectionStateChangedEvent.Deserialize(cloudEvent.Data.ToString()));
                }
                else if (cloudEvent.Type.Equals(CallingServerEventType.ToneReceivedEvent.ToString()))
                {
                    return(ToneReceivedEvent.Deserialize(cloudEvent.Data.ToString()));
                }
                else if (cloudEvent.Type.Equals(CallingServerEventType.PlayAudioResultEvent.ToString()))
                {
                    return(PlayAudioResultEvent.Deserialize(cloudEvent.Data.ToString()));
                }
                else if (cloudEvent.Type.Equals(CallingServerEventType.AddParticipantResultEvent.ToString()))
                {
                    return(AddParticipantResultEvent.Deserialize(cloudEvent.Data.ToString()));
                }
            }

            return(null);
        }
예제 #2
0
        public void ToneReceivedEventTest()
        {
            var json = "{\"toneInfo\":{\"sequenceId\":1,\"tone\":\"A\"},\"callConnectionId\": \"8e6ff9fd-dd81-47f9-963a-1989bb95779c\"}";

            var c = ToneReceivedEvent.Deserialize(json);

            Assert.AreEqual("8e6ff9fd-dd81-47f9-963a-1989bb95779c", c.CallConnectionId);
            Assert.IsNotNull(c.ToneInfo);
            Assert.AreEqual(1, c.ToneInfo.SequenceId);
            Assert.AreEqual(ToneValue.A, c.ToneInfo.Tone);
        }