private void AddQuestion(question question, List <question> subquestions, question parentQuestion) { if (parentQuestion == null) { _questions.Add(question); } else { parentQuestion.SubQuestions.Add(question); } foreach (question q in subquestions) { if (q.parent == question.id) { AddQuestion(q, subquestions, question); } } question.SubQuestions.Sort(); if (question.type == question.QuestionTypes.MultipleChoice) { question.GetMultipleChoiceAnswers(); } }
private void InitializeAnswers() { lstAnswerList.Items.Clear(); foreach (multiple_choice_answer mca in _formQuestion.GetMultipleChoiceAnswers()) { lstAnswerList.Items.Add(mca); } }
private void InitializeRequiredAnswerDropDown(question toInitialize) { cmbRequiredAnswer.Items.Add("No answer required"); if (toInitialize.ParentQuestion.type == question.QuestionTypes.MultipleChoice) { foreach (multiple_choice_answer mca in toInitialize.GetMultipleChoiceAnswers()) { cmbRequiredAnswer.Items.Add(mca); } cmbRequiredAnswer.SelectedIndex = cmbRequiredAnswer.FindStringExact(toInitialize.required_answer); } else if (toInitialize.ParentQuestion.type == question.QuestionTypes.YesNo) { cmbRequiredAnswer.Items.Add("Yes"); cmbRequiredAnswer.Items.Add("No"); try { // Temporary structure to deal with the fact that sometime required answer is saved as "true" and other times as "yes" cmbRequiredAnswer.SelectedIndex = cmbRequiredAnswer.FindStringExact( CommonFunctions.ToYesNo(System.Convert.ToBoolean(toInitialize.required_answer))); } catch { cmbRequiredAnswer.SelectedIndex = cmbRequiredAnswer.FindStringExact(toInitialize.required_answer); if (cmbRequiredAnswer.SelectedIndex < 0) { cmbRequiredAnswer.SelectedIndex = 0; } } } else { LoggingHelper.Log("Uninitialized question type on a parent that is marked as a fork.", LogSeverity.Critical, new Exception("Uninitialized question type on a parent that is marked as a fork."), true); } if (cmbRequiredAnswer.SelectedIndex == -1) { cmbRequiredAnswer.SelectedIndex = 0; } }