Exemple #1
0
        private static void ProcessEditField(
            UPMQuestionnaireGroup questionnaireGroup,
            UPQuestionnaireQuestion currentQuestion,
            UPMEditField editField,
            IQuestionnaireEditFieldContext editFieldContext,
            UPQuestionnaireCatalogEditField catalogEditField,
            string surveyAnswer,
            IList <string> answerIds,
            bool multiSelect)
        {
            if (questionnaireGroup == null)
            {
                throw new ArgumentNullException(nameof(questionnaireGroup));
            }

            if (currentQuestion == null)
            {
                throw new ArgumentNullException(nameof(currentQuestion));
            }

            if (editFieldContext == null)
            {
                throw new ArgumentNullException(nameof(editFieldContext));
            }

            if (answerIds == null)
            {
                throw new ArgumentNullException(nameof(answerIds));
            }

            editField.LabelText       = currentQuestion.Label;
            editField.DetailText      = currentQuestion.AdditionalInfo;
            editField.RequiredField   = currentQuestion.Mandatory;
            editFieldContext.Question = currentQuestion;

            if (multiSelect)
            {
                if (catalogEditField != null)
                {
                    foreach (string a in answerIds)
                    {
                        catalogEditField.AddFieldValue(a);
                    }
                }
            }
            else
            {
                editField.FieldValue = surveyAnswer;
            }

            editField.ContinuousUpdate = true;
            var questionnaireQuestion = new UPMQuestionnaireQuestion(editField)
            {
                Mandatory = currentQuestion.Mandatory
            };

            questionnaireGroup.AddQuestion(questionnaireQuestion);
        }
Exemple #2
0
        /// <summary>
        /// Pages for overview.
        /// </summary>
        /// <param name="page">The page.</param>
        /// <returns></returns>
        public Page PageForOverview(Page page)
        {
            Page newPage = this.InstantiatePage();

            if (this.portfolioGroup != null)
            {
                newPage.AddGroup(this.portfolioGroup);
            }

            foreach (UPMQuestionnaireGroup currentGroup in page.Groups)
            {
                UPMQuestionnaireGroup questionnaireGroup = new UPMQuestionnaireGroup(currentGroup.Identifier)
                {
                    LabelText = currentGroup.LabelText
                };
                bool insertGroup = false;
                foreach (UPMQuestionnaireQuestion currentQuestion in currentGroup.Questions)
                {
                    if (currentQuestion.Field.Empty)
                    {
                        continue;
                    }

                    insertGroup = true;
                    UPMEditField editField = (UPMEditField)currentQuestion.Field;
                    UPMField     field     = new UPMStringField(editField.Identifier)
                    {
                        LabelText = editField.LabelText
                    };
                    if (!editField.Empty)
                    {
                        field.FieldValue = editField.StringDisplayValue;
                    }

                    UPMQuestionnaireQuestion questionnaireQuestion = new UPMQuestionnaireQuestion(field);
                    questionnaireGroup.AddQuestion(questionnaireQuestion);
                }

                if (insertGroup)
                {
                    newPage.AddGroup(questionnaireGroup);
                }
            }

            return(newPage);
        }
Exemple #3
0
 /// <summary>
 /// Adds the question.
 /// </summary>
 /// <param name="question">The question.</param>
 public void AddQuestion(UPMQuestionnaireQuestion question)
 {
     this.AddChild(question);
 }