Esempio n. 1
0
        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();
            }
        }
Esempio n. 2
0
        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);
        }