Я использую график SDK в C#, чтобы получить список журналов вызовов PSTN. Некоторые из моих диапазонов дат возвращают более 1000 результаты на нескольких страницах. Я не уверен в лучшем способе итерации через результаты, чтобы получить все записи. Я установил целое число и по умолчанию на 0. В первый раз, когда я его нажимаю, я говорю о том, чтобы пропустить I*1000 .
var response = await graphClient
.Communications
.CallRecords
.MicrosoftGraphCallRecordsGetPstnCallsWithFromDateTimeWithToDateTime(DateTimeOffset.Parse("2024-12-18"), DateTimeOffset.Parse("2024-12-28"))
.GetAsGetPstnCallsWithFromDateTimeWithToDateTimeGetResponseAsync(requestConfiguration => {
requestConfiguration.QueryParameters.Skip = i * 1000;
});
< /code>
Тогда я делаю цикл в поисках odatanextlink и увеличения i. Вот полный код, который я работаю сейчас, и я был бы признателен, если бы кто-то мог поделиться, как правильно итерации через результаты.var graphClient = new GraphServiceClient(authProvider);
var callLogs = List();
int i = 0;
var response = await graphClient
.Communications
.CallRecords
.MicrosoftGraphCallRecordsGetPstnCallsWithFromDateTimeWithToDateTime(DateTimeOffset.Parse("2024-12-18"), DateTimeOffset.Parse("2024-12-28"))
.GetAsGetPstnCallsWithFromDateTimeWithToDateTimeGetResponseAsync(requestConfiguration => {
requestConfiguration.QueryParameters.Skip = i * 1000;
});
var pstnCalls = response.Value;
var nextLink = response.OdataNextLink;
while (!string.IsNullOrEmpty(nextLink)) {
i += 1;
response = await graphClient
.Communications
.CallRecords
.MicrosoftGraphCallRecordsGetPstnCallsWithFromDateTimeWithToDateTime(DateTimeOffset.Parse("2024-12-18"), DateTimeOffset.Parse("2024-12-28"))
.GetAsGetPstnCallsWithFromDateTimeWithToDateTimeGetResponseAsync(requestConfiguration => {
requestConfiguration.QueryParameters.Skip = i * 1000;
});
pstnCalls.AddRange(response.Value);
nextLink = response.OdataNextLink;
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... tanextlink