/// <summary> /// Visibles the questions for group. /// </summary> /// <param name="group">The group.</param> /// <returns></returns> public List <UPQuestionnaireQuestion> VisibleQuestionsForGroup(UPQuestionnaireQuestionGroup group) { List <UPQuestionnaireQuestion> questions = new List <UPQuestionnaireQuestion>(); foreach (UPSurveyAnswer answer in this.AnswerArray) { if (answer.Question.QuestionnaireGroup == group) { questions.Add(answer.Question); } } return(questions); }
private void QuestionsFromResult(UPCRMResult result) { int count = result.RowCount; List <UPQuestionnaireQuestion> questions = new List <UPQuestionnaireQuestion>(count); Dictionary <string, UPQuestionnaireQuestion> questionDictionary = new Dictionary <string, UPQuestionnaireQuestion>(count); Dictionary <string, UPQuestionnaireQuestionGroup> questionGroupDictionary = new Dictionary <string, UPQuestionnaireQuestionGroup>(); Dictionary <string, UPQuestionnaireQuestion> questionRecordIdentificationDictionary = new Dictionary <string, UPQuestionnaireQuestion>(count); List <UPQuestionnaireQuestionGroup> questionGroupArray = new List <UPQuestionnaireQuestionGroup>(); UPQuestionnaireQuestionGroup questionGroup = null; List <UPQuestionnaireQuestion> questionArray = new List <UPQuestionnaireQuestion>(count); for (int i = 0; i < count; i++) { UPQuestionnaireQuestion question = new UPQuestionnaireQuestion((UPCRMResultRow)result.ResultRowAtIndex(i), this); questionArray.Add(question); } questionArray = questionArray.OrderBy(x => x.QuestionSortKey).ToList(); List <UPQuestionnaireQuestion> foreignFieldQuestions = null; foreach (UPQuestionnaireQuestion question in questionArray) { if (question.StartsNewGroup) { questionGroup = new UPQuestionnaireQuestionGroup(question); questionGroupArray.Add(questionGroup); questionGroupDictionary[question.QuestionId] = questionGroup; question.Hide = true; question.QuestionnaireGroup = questionGroup; continue; } if (questionGroup == null) { questionGroup = new UPQuestionnaireQuestionGroup(this); questionGroupArray.Add(questionGroup); questionGroupDictionary[question.QuestionId] = questionGroup; } questionGroup.AddQuestion(question); question.QuestionnaireGroup = questionGroup; if (!string.IsNullOrEmpty(question.QuestionId)) { question.QuestionIndex = questions.Count; if (!questionDictionary.ContainsKey(question.QuestionId)) { questions.Add(question); questionDictionary[question.QuestionId] = question; if (!string.IsNullOrEmpty(question.RecordIdentification)) { questionRecordIdentificationDictionary[question.RecordIdentification] = question; } if (question.FieldInfo != null && (question.Read || question.Save)) { if (foreignFieldQuestions == null) { foreignFieldQuestions = new List <UPQuestionnaireQuestion> { question }; } else { foreignFieldQuestions.Add(question); } } } } } this.ForeignFieldQuestions = foreignFieldQuestions; this.Questions = questions; this.QuestionsById = questionDictionary; this.QuestionsGroupById = questionGroupDictionary; this.QuestionGroups = questionGroupArray; this.QuestionsByRecordIdentification = questionRecordIdentificationDictionary; this.currentQuery = new UPContainerMetaInfo(this.Manager.QuestionAnswersSearchAndList, this.filterParameters); this.currentQuery.SetLinkRecordIdentification(this.RecordIdentification); this.loadStep = 2; this.currentQuery.Find(this.requestOption, this); }
/// <summary> /// Visibles the questions for group. /// </summary> /// <param name="questionnaireGroup">The questionnaire group.</param> /// <returns></returns> public List <UPQuestionnaireQuestion> VisibleQuestionsForGroup(UPQuestionnaireQuestionGroup questionnaireGroup) { return(this.SurveyPath.VisibleQuestionsForGroup(questionnaireGroup)); }