예제 #1
0
        private void PopulateConversationChildResources(ConversationResource resource) //Events processing are always sequenced, so do not need to worry about thread safe
        {
            if (resource != null)
            {
                if (resource.MessagingResourceLink != null && m_messagingCall == null)
                {
                    m_messagingCall = new MessagingCall(this.RestfulClient, null, this.BaseUri, UriHelper.CreateAbsoluteUri(this.BaseUri, resource.MessagingResourceLink.Href), this);
                }

                if (resource.AudioVideoResourceLink != null && m_audioVideoCall == null)
                {
                    m_audioVideoCall = new AudioVideoCall(this.RestfulClient, null, this.BaseUri, UriHelper.CreateAbsoluteUri(this.BaseUri, resource.AudioVideoResourceLink.Href), this);
                }

                if (resource.ConversationConferenceResourceLink != null && m_conversationConference == null)
                {
                    m_conversationConference = new ConversationConference(this.RestfulClient, null, this.BaseUri, UriHelper.CreateAbsoluteUri(this.BaseUri, resource.ConversationConferenceResourceLink.Href), this);
                }

                if (resource.ConversationBridgeInfoResourceLink != null && m_conversationBridge == null)
                {
                    m_conversationBridge = new ConversationBridge(this.RestfulClient, null, this.BaseUri, UriHelper.CreateAbsoluteUri(this.BaseUri, resource.ConversationBridgeInfoResourceLink.Href), this);
                }
            }
        }
예제 #2
0
 internal Transfer(IRestfulClient restfulClient, TransferResource resource, Uri baseUri, Uri resourceUri, AudioVideoCall parent)
     : base(restfulClient, resource, baseUri, resourceUri, parent)
 {
     if (parent == null)
     {
         throw new ArgumentNullException(nameof(parent), "AudioVideo is required");
     }
     m_transferCompleteTcs = new TaskCompletionSource <string>();
 }