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(); }
public QuestionConstructVM(QuestionConstruct questionConstruct, QuestionVM question) : base(questionConstruct) { Debug.Assert(questionConstruct != null); Debug.Assert(question != null); this.questionConstruct = questionConstruct; this.question = question; }
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); }