private List<Respondent> GetRespondentListPage(long surveyId, int page, int pageSize, bool limitPageSize, GetRespondentListSettings settings) { RequestSettings parameters = settings.Serialized; parameters.Add("survey_id", surveyId.ToString()); parameters.Add("page", page); if (limitPageSize) { parameters.Add("page_size", pageSize); } return GetRespondentListRequest(parameters); }
///No limit on page size public List<Respondent> GetRespondentList(long surveyId, int page, GetRespondentListSettings settings) { if (page < 1) { throw new ArgumentException("Page must be greater than 0."); } return GetRespondentListPage(surveyId, page, 0, false, settings); }
//Limit the page size returned public List<Respondent> GetRespondentList(long surveyId, int page, int pageSize, GetRespondentListSettings settings) { if (pageSize < 1 || pageSize > 1000) { throw new ArgumentException("Page size must be between 1 and 1000."); } return GetRespondentListPage(surveyId, page, pageSize, true, settings); }
//TODO: deal with account upgrade notifications //Auto-paging public List<Respondent> GetRespondentList(long surveyId, GetRespondentListSettings settings) { var respondents = new List<Respondent>(); bool cont = true; int page = 1; while (cont) { RequestSettings parameters = settings.Serialized; parameters.Add("survey_id", surveyId.ToString()); parameters.Add("page", page); var newRespondents = GetRespondentListRequest(parameters); if (newRespondents.Count > 0) { respondents.AddRange(newRespondents); } if (newRespondents.Count < 1000) { cont = false; } page++; } return respondents; }