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;
        }