Я проверил несколько потоков подкачки в стеке и не смог создать функциональную копию кода.
Я знаю, что в следующем случае Graph возвращает 200 элементов на страницу, и если я хочу foreach
все пункты, которые мне нужны, чтобы перейти на следующую страницу. Пожалуйста, проверьте следующий код и скажите мне, что я делаю неправильно.
Всегда выдает исключение в улове, где вызывается NextPageRequest.GetAsync()
.
В результате этого кода только 200из 3xx элементов удалены.
var deleteListItems = new List<Microsoft.Graph.ListItem>();
var deleteListItemsPage = await graphServiceClient
.Sites[siteUrl]
.Lists[listName]
.Items
.Request(deleteQueryOptions)
.GetAsync();
deleteListItems.AddRange(deleteListItemsPage.CurrentPage);
do
{
foreach (var deleteItem in deleteListItemsPage)
{
awaitTasks.Add(graphServiceClient
.Sites[siteUrl]
.Lists[listName]
.Items[deleteItem.Id]
.Request()
.DeleteAsync());
}
try
{
Task.WaitAll(awaitTasks.ToArray());
}
catch
{
Console.WriteLine("ERROOR executing the tasks");
}
Console.WriteLine("Another PAGE of List Items successfully deleted");
try
{
deleteListItemsPage = await deleteListItemsPage.NextPageRequest.GetAsync();
deleteListItems.AddRange(deleteListItemsPage.CurrentPage);
}
catch
{
Console.WriteLine("There is no NextPageRequest for deleting items or ERROR occured.");
}
} while (deleteListItemsPage.NextPageRequest != null);