Azure выбор устройства и случайной страницы - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь реализовать пейджинг для устройства 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 при запросе списка устройств. Но в этом случае я могу только двигаться:

  1. вперед
  2. страница за страницей

Я хочу иметь возможность go на произвольной странице , Для этого внешнее приложение должно хранить токен для конкретной страницы, что было бы бесполезно, если оно решит изменить размер запрашиваемой страницы.

Есть идеи?

...