Я пытаюсь реализовать пейджинг для устройства azure через. NET Azure SDK в моем ASP. NET Базовом приложении WEB API
В принципе так и должно быть
var continuationToken = Convert.ToBase64String(Encoding.UTF8.GetBytes(pageToken));
var registryManager = RegistryManager.CreateFromConnectionString(iotHubConnectionString);
var twinsQuery = registryManager.CreateQuery("SELECT * FROM devices", pageSize);
var twins = await twinsQuery.GetNextAsTwinAsync(new QueryOptions() { ContinuationToken = continuationToken }).ConfigureAwait(false);
Токен страницы до кодирования выглядит так (нажал кнопку «Загрузить еще» на портале и посмотрел параметры запроса POST):
skip=0&total=10&last={"token":null,"range":{"min":"05C1B3D94F61F0","max":"05C1B7D15F4320"}}
Проблема в том, что я не не знаю, как генерировать минимальные и максимальные параметры. Например, если я закодирую этот токен:
skip=12&total=4
Я не получу страницу размером 4 и номер страницы 4. GetNextAsTwinAsyn c () просто получает 4 устройства, начиная с 2-й (!) Один.
В настоящее время единственным вариантом является получение токена продолжения обратно во внешнее приложение, чтобы он мог отправлять токен обратно в WEB API при запросе списка устройств. Но в этом случае я могу только двигаться:
- вперед
- страница за страницей
Я хочу иметь возможность go на произвольной странице , Для этого внешнее приложение должно хранить токен для конкретной страницы, что было бы бесполезно, если оно решит изменить размер запрашиваемой страницы.
Есть идеи?