/// <summary> /// Retrieves a paged list of surveys in a user's account. /// Notes /// •DateStrings must be in the format YYYY-MM-DD HH:MM:SS.All DateStrings are implicitly in UTC. /// •All start dates are greater than or equal to the date passed in /// •All end dates are strictly less than the date passed in /// Endpoint : https://api.surveymonkey.net/v2/surveys/get_survey_list?api_key=your_api_key /// Example Request /// curl -H 'Authorization:bearer XXXYYYZZZ' -H 'Content-Type: application/json' https://api.surveymonkey.net/v2/surveys/get_survey_list/?api_key=your_api_key --data-binary '{"fields":["title","analysis_url","date_created","date_modified"], "start_date":"2013-02-02 00:00:00", "end_date":"2013-04-12 22:43:01", "order_asc":false, "title":"test3"}' /// </summary> public GetSurveyDetailsResponse GetSurveyDetails(BasicRequestData requestData) { JsonResponse = MakeApiRequest(GET_SURVEY_DETAILS, requestData); GetSurveyDetailsResponse surveyList = JsonConvert.DeserializeObject <GetSurveyDetailsResponse>(JsonResponse); return(surveyList); }
/// <summary> /// Turn a detail survey response into a survey id with a list of associated questions and answers. /// </summary> /// <param name="surveyDetailResponse">Has all data regarding the survey</param> public void LoadSurvey(GetSurveyDetailsResponse surveyDetailResponse) { int questionNumber = 0; List <QuestionInfo> qList = new List <QuestionInfo>(); List <QuestionAnswerFlat> qafList = new List <QuestionAnswerFlat>(); SurveyID = surveyDetailResponse.SurveyDetailsResult.SurveyID; foreach (PageInfo surveyPage in surveyDetailResponse.SurveyDetailsResult.PageList) { foreach (QuestionInfo pageQuestion in surveyPage.QuestionList.OrderBy(e => e.Position)) { string row = "0"; string col = "0"; qList.Add(pageQuestion); questionNumber++; foreach (AnswerInfo questionAnswer in pageQuestion.QuestionAnswerList.OrderBy(e => e.Position)) { if (questionAnswer.AnswerType == AnswerTypeEnum.Row) { row = questionAnswer.AnswerID; } if (questionAnswer.AnswerType == AnswerTypeEnum.Column) { col = questionAnswer.Column; } QuestionAnswerFlat qaf = new QuestionAnswerFlat(); qaf.AnswerID = questionAnswer.AnswerID; qaf.AnswerNumber = questionAnswer.Position; qaf.AnswerText = questionAnswer.Text; qaf.AnswerType = questionAnswer.AnswerType; qaf.AnswerVisible = questionAnswer.Visible; qaf.QuestionID = pageQuestion.QuestionID; qaf.QuestionNumber = questionNumber; qaf.QuestionSubtype = pageQuestion.QuestionType.Subtype; qaf.QuestionText = pageQuestion.Heading; qaf.QuestionType = pageQuestion.QuestionType.Family; qaf.Column = col; qaf.Row = row; qaf.Weight = questionAnswer.Weight; qafList.Add(qaf); } } } QuestionList = qList; SurveyWithAnswers = qafList; }
private void DBSurveyResponseUpdate(GetSurveyDetailsResponse surveyDetails, List <QuestionAnswerFlat> surveyWithAnswers) { string SurveyID = surveyDetails.SurveyDetailsResult.SurveyID; foreach (PageInfo pInfo in surveyDetails.SurveyDetailsResult.PageList) { string PageID = pInfo.PageID; string PageHeading = pInfo.Heading; int questionsPerPage = 0; double pageRankSum = 0; foreach (QuestionInfo qInfo in pInfo.QuestionList) { int partsPerQuestion = 0; double questionRankSum = 0; if (qInfo.QuestionType.Subtype == QuestionSubtypeEnum.Rating || qInfo.QuestionType.Subtype == QuestionSubtypeEnum.Ranking) { List <QuestionAnswerFlat> qRatingsList = surveyWithAnswers.Where(e => e.QuestionID == qInfo.QuestionID).ToList <QuestionAnswerFlat>(); foreach (QuestionAnswerFlat qaf in qRatingsList) { if (qaf.AnswerType == AnswerTypeEnum.Row) { questionRankSum += qaf.RankAvg; partsPerQuestion++; } } } double questionRankAvg = questionRankSum / partsPerQuestion; // Write survey results to database. //Survey.SurveyResponseUpdate(SurveyID, qInfo.QuestionID, PageHeading, PageID, questionRankAvg, connString); questionsPerPage += partsPerQuestion; pageRankSum += questionRankSum; } double pageRankAvg = pageRankSum / questionsPerPage; // Write survey page summary to database. //Survey.SurveyResponseUpdate(SurveyID, "", PageHeading, PageID, pageRankAvg, connString); } }