diadocsdk-csharp
diadocsdk-csharp copied to clipboard
Пример использования AfterIndexKey
Добрый день, обратился в поддержку, потому что при вызове функции GetContragents() не приходит добрая часть контрагентов (приходят 100, а на самом деле их 177). В поддержке посоветовали использовать AfterIndexKey. Из документации совершенно не ясно какое значение должно быть в этом AfterIndexKey. Не могли бы вы отправить пример использования этой функции GetContragents() с значением AfterIndexKey?
var f1 = diadocApi.GetCounteragents(authTokenByCertificateThumbprint, myOrganisation.OrgId.... в первой итерации индекс не передаете var c = f1.Counteragents[f1.Counteragents.Count-1]; c.IndexKey; есть индекс последнего полученного контрагента. Ну и дальше повторно GetCounteragents уже с индексом.
Я вас вообще не понял. Мне нужно вызвать сначала GetCounteragents() без AfterIndexKey, потом... взять последнего контрагента и взять из него AfterIndexKey и вызвать GetCounteragents() уже с этим AfterIndexKey. Я правильно понял?
Да. Выдаст следующую порцию. и так по кругу. За один раз отдает 100
Т.е. эта функция GetCounteragents() может предоставить максимально только 100 контрагентов? А дальше нужно вызывать эту функцию еще раз с AfterIndexKey?
Да. Это описано в документации.
Вчера Диадок поменял int строки на hex строки. Пришлось поправить код. Может кому пригодится.
string currentIndex = "";
do
{
var casList = ddc.Api.GetCounteragents(ddc.CurrentToken, orgId, caStatus, currentIndex.ToString());
// TotalCount - это количество еще необработанных, а не общее количество КА
foreach (var ca in casList.Counteragents)
TryAddNewPartnership(db, dbBox, ca);
if (casList.TotalCount <= 100) break;
currentIndex = casList.Counteragents.Last().IndexKey;
} while (true);