Code: Select all
public static async Task GetAll(this Task collectionTask)
{
// Argument checks, error handling and parameter for max item count omitted for better readability
var collectionPage = await collectionTask;
var start = (IEnumerable)(collectionPage);
while (collectionPage.NextPageRequest != null)
{
collectionPage = await collectionPage.NextPageRequest.GetAsync();
start = start.Concat(collectionPage);
}
return start;
}
< /code>
Diese Art von Erweiterungsmethoden, die so etwas schreiben dürfen: < /p>
var currentGroupMembers = await serviceClient.Groups[azureGroup.Id].Members.Request().GetAsync().GetAll();
Code: Select all
public static async Task GetAllWithPageIterator(this Task pageTask, IBaseClient baseClient)
{
// Argument checks, error handling and parameter for max item count omitted for better readability
var page = await pageTask;
var allElements = new List();
var iterator = PageIterator.CreatePageIterator(baseClient, page, item =>
{
allElements.Add(item);
return true;
});
await iterator.IterateAsync();
return allElements;
}
< /code>
Sie können es einfach nicht verwenden: < /p>
// Extension method explicitly called to better show error message.
var task = serviceClient.Groups[azureGroup.Id].Members.Request().GetAsync();
await IGraphServiceCollectionPageExtensions.GetAllWithPageIterator(task, serviceClient);
Argument 1: cannot convert from 'System.Threading.Tasks.Task' to 'System.Threading.Tasks.Task'
Code: Select all
var firstPage = await serviceClient.Groups[azureGroup.Id].Members.Request().GetAsync();
var allItems = firstPage.GetAllWithPageIterator(firstPage, serviceClient);