2014-02-25 26 views
0

我試圖通過書籤使用循環結構來獲取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。

我錯過了什麼?

回答

2

看來您在此API中遇到了缺陷。下一步行動是讓您的機構的核準支持聯繫人通過Desire2Learn幫助臺打開一個事件。請在事故報告中提及Sarah-Beth Bianchi意識到這個問題,我將與我們的支持團隊一起合作指導這個問題。

相關問題