예제 #1
0
        public void Init()
        {
            List <string> ids = controlConstructScheme.Sequence.ControlConstructIds;

            foreach (string id in ids)
            {
                QuestionConstruct questionConstructModel = controlConstructScheme.FindQuestionConstruct(id);
                if (questionConstructModel != null)
                {
                    QuestionVM question = StudyUnit.FindQuestion(questionConstructModel.QuestionId);
                    Debug.Assert(question != null, "Question not found id=" + questionConstructModel.QuestionId);
                    QuestionConstructVM questionConstruct = new QuestionConstructVM(questionConstructModel, question);
                    InitConstruct(questionConstruct);
                    constructModels.Add(questionConstructModel);
                    constructs.Add(questionConstruct);
                    continue;
                }
                QuestionGroupConstruct questionGroupConstructModel = controlConstructScheme.FindQuestionGroupConstruct(id);
                if (questionGroupConstructModel != null)
                {
                    QuestionGroupVM          questionGroup          = StudyUnit.FindQuestionGroup(questionGroupConstructModel.QuestionGroupId);
                    QuestionGroupConstructVM questionGroupConstruct = new QuestionGroupConstructVM(questionGroupConstructModel, questionGroup);
                    InitConstruct(questionGroupConstruct);
                    constructModels.Add(questionGroupConstructModel);
                    constructs.Add(questionGroupConstruct);
                    continue;
                }
                Statement statementModel = controlConstructScheme.FindStatement(id);
                if (statementModel != null)
                {
                    StatementVM statement = new StatementVM(statementModel);
                    InitConstruct(statement);
                    constructModels.Add(statementModel);
                    constructs.Add(statement);
                    continue;
                }
                IfThenElse ifThenElseModel = controlConstructScheme.FindIfThenElse(id);
                if (ifThenElseModel != null)
                {
                    IfThenElseVM ifThenElse = new IfThenElseVM(ifThenElseModel);
                    InitConstruct(ifThenElse);
                    constructModels.Add(ifThenElseModel);
                    constructs.Add(ifThenElse);
                }
            }

            List <QuestionConstructVM> questionConstructs = QuestionConstructs;

            foreach (ConstructVM construct in constructs)
            {
                if (construct is IfThenElseVM)
                {
                    IfThenElseVM ifThenElse = (IfThenElseVM)construct;
                    ifThenElse.ThenConstructs = ThenConstructs;
                }
            }
            modelSyncher = new ModelSyncher <ConstructVM, IConstruct>(this, constructs, constructModels);
            InitTitle();
        }
예제 #2
0
 public QuestionConstructVM(QuestionConstruct questionConstruct, QuestionVM question)
     : base(questionConstruct)
 {
     Debug.Assert(questionConstruct != null);
     Debug.Assert(question != null);
     this.questionConstruct = questionConstruct;
     this.question          = question;
 }
예제 #3
0
        public void InsertQuestionConstruct(QuestionVM question, bool manualOperation)
        {
            ConstructVM construct = ConstructVM.FindByQuestionId(constructs, question.Id);

            if (construct != null)
            {
                if (manualOperation)
                {
                    //show error message if added by screen
                    MessageBox.Show(Resources.AlreadySelectedQuestion); //This question is already selected
                }
                return;
            }
            QuestionConstruct questionConstructModel = new QuestionConstruct();

            questionConstructModel.QuestionId = question.Id;
            questionConstructModel.No         = ControlConstructScheme.QUESTION_NO_PREFIX + (ConstructUtils.QuestionConstructCount(constructs) + 1);
            QuestionConstructVM questionConstruct = new QuestionConstructVM(questionConstructModel, question);

            InsertConstruct(questionConstruct, manualOperation);
        }