public void GetAllChatReferences() { IList <Chat> chatReferences; IList <ChatMessage> messageReference; IList <ConversationMember> memberReference; GraphServiceClient client = new GraphServiceClient(Authentication.GetCredentialProvider()); Task <IUserChatsCollectionPage> chatPage = client.Me.Chats.Request().GetAsync(); chatPage.Wait(); while (true) { IUserChatsCollectionPage chats = chatPage.Result; chatReferences = chats.CurrentPage; foreach (Chat chat in chatReferences) { Task <IChatMessagesCollectionPage> chatMessagePage = client.Chats[chat.Id].Messages.Request().GetAsync(); chatMessagePage.Wait(); List <MessageDetail> messageDetailList = new List <MessageDetail>(); while (true) { IChatMessagesCollectionPage messages = chatMessagePage.Result; messageReference = messages.CurrentPage; foreach (ChatMessage message in messageReference) { MessageDetail detail = new MessageDetail(); detail.Body = message.Body.Content; detail.From = message.From.User.DisplayName; messageDetailList.Add(detail); } if (messageReference.Count == 0) { break; } chatMessagePage = messages.NextPageRequest.GetAsync(); chatMessagePage.Wait(); } Task <IChatMembersCollectionPage> chatMemberPage = client.Chats[chat.Id].Members.Request().GetAsync(); chatMemberPage.Wait(); IChatMembersCollectionPage members = chatMemberPage.Result; memberReference = members.CurrentPage; List <string> memberList = GetMembers(memberReference); if (memberList.Count > 0 && messageDetailList.Count > 0) { Console.WriteLine("Chat between " + DisplayMembers(memberList)); foreach (MessageDetail detail in messageDetailList) { Console.WriteLine(detail.From + ": " + detail.Body); } } } if (chats.NextPageRequest == null) { break; } chatPage = chats.NextPageRequest.GetAsync(); chatPage.Wait(); } }
private List <MessageDetail> GetMessages(IChatMessagesCollectionPage messagePage) { List <MessageDetail> messageList = new List <MessageDetail>(); IList <ChatMessage> messageReferences; if (messagePage != null) { messageReferences = messagePage.CurrentPage; foreach (ChatMessage message in messageReferences) { MessageDetail detail = new MessageDetail(); detail.Body = message.Body.Content; detail.From = message.From.User.DisplayName; } } return(messageList); }