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