in certified-connectors/Spring Global/script.csx [109:179]
public string GetSurveySchema(JObject surveyJson)
{
JObject resultJson = new JObject();
JObject firstLevelJson = new JObject();
firstLevelJson["type"] = "object";
firstLevelJson["description"] = $"Survey execution (object)";
JObject resultBodyJson = new JObject();
SetSimpleProperty(resultBodyJson, "Id", "Execution Id", "Execution Id", "string", null);
SetSimpleProperty(resultBodyJson, "SurveyId", "Surver Id", "Surver Id", "string", null);
SetSimpleProperty(resultBodyJson, "SurveyName", "Survey name", "Survey name", "string", null);
SetSimpleProperty(resultBodyJson, "Date", "Execution date", "Execution date", "string", "date-time");
SetSimpleProperty(resultBodyJson, "UserId", "User Id", "User Id", "string", null);
List<JToken> questions = surveyJson.SelectTokens("$..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");
SetSimpleProperty(resultBodyJson, $"Question{order}", $"Question {order} Text", questionText, "string", null);
switch (questionType)
{
case "CHR":
SetSimpleProperty(resultBodyJson, $"Answer{order}", $"Question {order} Answer (Text)", questionText, "string", null);
break;
case "NUM":
SetSimpleProperty(resultBodyJson, $"Answer{order}", $"Question {order} Answer (Numeric)", questionText, "number", null);
break;
case "SCO":
SetSimpleProperty(resultBodyJson, $"Answer{order}", $"Question {order} Answer (Scale)", questionText, "integer", null);
break;
case "RAD":
JObject answerJson1 = SetSimpleProperty(resultBodyJson, $"Answer{order}", $"Question {order} Answer (Single Choice)", questionText, "object", null);
JObject radJson = new JObject();
SetSimpleProperty(radJson, "id", $"Selected choice id", questionText, "string", null);
SetSimpleProperty(radJson, "text", $"Selected choice title", questionText, "string", null);
answerJson1["properties"] = radJson;
break;
case "CHK":
JObject answerJson2 = SetSimpleProperty(resultBodyJson, $"Answer{order}", $"Question {order} Answer (Checkbox)", questionText, "object", null);
JObject answerJson2Options = new JObject();
JArray optionsJson = (JArray)question["options"];
int optionNumber = 0;
foreach (JObject optionJson in optionsJson)
{
optionNumber++;
string optionText = optionJson.Value<string>("text");
SetSimpleProperty(answerJson2Options, $"Option{optionNumber}Text", $"Option {optionNumber} text", $"{optionText}{Environment.NewLine}{questionText}", "string", null);
SetSimpleProperty(answerJson2Options, $"Option{optionNumber}Checked", $"Option {optionNumber} is selected",$"Is selected '{optionText}'{Environment.NewLine}{questionText}", "boolean", null);
SetSimpleProperty(answerJson2Options, $"Option{optionNumber}Id", $"Option {optionNumber} id", $"Option {optionNumber} ID{Environment.NewLine}{questionText}", "boolean", null);
}
answerJson2["properties"] = answerJson2Options;
break;
//case "IMG":
default:
break;
}
}
firstLevelJson["properties"] = resultBodyJson;
resultJson["schemaDefinition"] = firstLevelJson;
return resultJson.ToString();
}