public async Task <List <Message> > SyncInbox() { GraphServiceClient graphClient = SDKHelper.GetAuthenticatedClient(); List <Message> messagesCollection = new List <Message>(); IMailFolderMessagesCollectionRequest nextRequest = null; do { IMailFolderMessagesCollectionPage messagesCollectionPage; if (nextRequest != null) { messagesCollectionPage = await nextRequest.GetAsync(); } else { messagesCollectionPage = await graphClient.Me.MailFolders.Inbox.Messages.Request() .Select("Subject,ReceivedDateTime,From,BodyPreview,IsRead") .OrderBy("ReceivedDateTime+desc") .Filter("ReceivedDateTime ge " + DateTime.Now.AddDays(-7).ToString("yyyy-MM-ddTHH:mm:ssZ")).GetAsync(); } messagesCollection.AddRange(messagesCollectionPage.CurrentPage); if (messagesCollectionPage.CurrentPage.Count == 0) { nextRequest = null; } else { nextRequest = messagesCollectionPage.NextPageRequest; } }while (nextRequest != null); return(messagesCollection); }
/// <summary> /// Initializes the NextPageRequest property. /// </summary> public void InitializeNextPageRequest(IBaseClient client, string nextPageLinkString) { if (!string.IsNullOrEmpty(nextPageLinkString)) { this.NextPageRequest = new MailFolderMessagesCollectionRequest( nextPageLinkString, client, null); } }