public Task <ReturnMessage> InviteParticipants(Attendee[] attendees) { Task <ReturnMessage> checkTask = _meetingManager.CheckMeetingServerStatus(); if (checkTask != null) { return(checkTask); } var tcs = new TaskCallback <ReturnMessage>("InviteParticipants"); if (_meetingManager.TaskCallbacks.ContainsKey(tcs.Name)) { _meetingManager.TaskCallbacks.Remove(tcs.Name); } _meetingManager.TaskCallbacks.Add(tcs.Name, tcs); List <ContactInfo> contactInfos = new List <ContactInfo>(); foreach (var attendee in attendees) { contactInfos.Add(new ContactInfo() { m_szDisplayName = attendee.Name, m_szPhoneId = attendee.Id }); } var result = MeetingAgent.InviteParticipants(_meetingManager.CurrentMeetingId, contactInfos.ToArray(), contactInfos.Count); if (result != 0) { return(Task.FromResult(MessageManager.FailedToInviteParticipants)); } return(tcs.Task); }