in certified-connectors/Spring Global/script.csx [52:104]
public string GetSurveyData(string surveyExecutionData)
{
JArray surveyExecutionArrayJson = JArray.Parse(surveyExecutionData);
JObject surveyExecutionJson = (JObject)surveyExecutionArrayJson.First();
JObject resultJson = new JObject();
resultJson["Id"] = surveyExecutionJson["id"];
resultJson["surveyId"] = surveyExecutionJson["surveyId"];
resultJson["SurveyName"] = (string)surveyExecutionJson.SelectToken("$.surveyPublication.survey.name");
resultJson["Date"] = surveyExecutionJson["executionDate"];
resultJson["userId"] = surveyExecutionJson["userId"];
List<JToken> questions = surveyExecutionJson.SelectTokens("$.pages..parameters[:10000]").ToList();
int i = 0;
foreach (JObject question in questions)
{
i++;
int order = i;
string questionText = question.Value<string>("name");
string questionType = (string)question.SelectToken("parameterType.code");
resultJson[$"Question{order}"] = questionText;
switch (questionType)
{
case "CHR":
case "NUM":
case "SCO":
case "RAD":
resultJson[$"Answer{order}"] = question["value"];
break;
case "CHK":
JObject selectedOptions = new JObject();
resultJson[$"Answer{order}"] = selectedOptions;
JArray optionsJson = (JArray)question["options"];
int optionNumber = 0;
foreach (JObject optionJson in optionsJson)
{
optionNumber++;
selectedOptions[$"Option{optionNumber}Text"] = optionJson["text"];
selectedOptions[$"Option{optionNumber}Checked"] = optionJson["checked"];
selectedOptions[$"Option{optionNumber}Id"] = optionJson["id"];
}
break;
//case "IMG":
default:
break;
}
}
string result = resultJson.ToString(); ;
return result;
}