2016-05-26 9 views
1

Ich versuche, alle Outlook-Kontakte für ein ausgewähltes Konto anzuzeigen. Wenn ein Konto mehrere tausend Kontakte enthält, werden im folgenden Code nur die ersten n Kontakte angezeigt. Das contactResults-Objekt verfügt über eine MorePagesAvailable-Eigenschaft und eine GetNextPageAsync() -Methode, die verfügbar ist, aber ich weiß eindeutig nicht, wie Sie sie verwenden. Kann mir bitte jemand aufklären.Outlook-Kontakte-API - Paging-Ergebnisse

string token = (string)Session["access_token"]; 
string email = (string)Session["user_email"]; 

// Since we have the token locally from the Session, just return it here 
OutlookServicesClient client = new OutlookServicesClient(new Uri("https://outlook.office.com/api/v2.0"), async() => { return token; }); 

client.Context.SendingRequest2 += new EventHandler<SendingRequest2EventArgs>((sender, e) => InsertXAnchorMailboxHeader(sender, e, email)); 

var contactResults = await client.Me.Contacts 
        .OrderBy(c => c.DisplayName) 
        .Take(2500) 
        .Select(c => new DisplayContact(c)) 
        .ExecuteAsync(); 

foreach (DisplayContact displayContact in contactResults.CurrentPage) 
    System.Diagnostics.Debug.WriteLine(displayContact); 

Antwort

0
var contactResults = await client.Me.Contacts 
       .OrderBy(c => c.DisplayName) 
       .Select(c => new DisplayContact(c)) 
       .ExecuteAsync(); 

while (true) 
{ 
    foreach (DisplayContact displayContact in contactResults.CurrentPage) 
     System.Diagnostics.Debug.WriteLine(displayContact); 

    if (contactResults.MorePagesAvailable) 
     contactResults = await contactResults.GetNextPageAsync(); 
    else 
     break; 
}