나는 우리가 Desire2Learn의 인스턴스에있는 모든 사용자의 목록을 북마크를 통해 반복 구조를 사용하여 얻으려고 시도하지만 어떤 이유로 그것이 계속 반복되고 반환되지 않습니다. . 내가는 사용자 관리 도구에서와 같이 시스템에서 우리가 가진 것보다 훨씬 더 많은 사용자 (대량을 보여주는 디버깅 할 때 내 코드의 일부는 여기에 있습니다 : 나는 원래 목록 컨테이너를 사용했다Valence를 통해 모든 사용자 목록 가져 오기
public async Task<List<UserData>> GetAllUsers(int pages = 0)
{
//List<UserData> users = new List<UserData>();
HashSet<UserData> users = new HashSet<UserData>();
int pageCount = 0;
bool getMorePages = true;
var response = await Get<PagedResultSet<UserData>>("/d2l/api/lp/1.4/users/");
var qParams = new Dictionary<string, string>();
do
{
qParams["bookmark"] = response.PagingInfo.Bookmark;
//users = users.Concat(response.Items).ToList<UserData>();
users.UnionWith(response.Items);
response = await Get<PagedResultSet<UserData>>("/d2l/api/lp/1.4/users/", qParams);
if (pages != 0)
{
pageCount++;
if (pageCount >= pages)
{
getMorePages = false;
}
}
}
while (response.PagingInfo.HasMoreItems && getMorePages);
return users.ToList();
}
그것은 주석 처리되었지만 HashSet으로 바뀌 었습니다. 중복되는 부분이 추가 될 경우 알 수 있습니까?
어떤 이유로 든 작동하지 않습니다. Get<PagedResultSet<UserData>>()
메서드는 단순히 HTTP 요청 로직을 래핑합니다. 매번 북마크를 보내고 보내십시오.
사용자 관리 도구는 th 현재 시스템에있는 39,695 명의 사용자가 있습니다. 몇 분 동안 실행하고 UnionWith
을 돌파 한 후 내 세트에 211,800 명의 사용자가 있다는 것을 보여주고 있습니다.
무엇이 누락 되었습니까?