public ChangeMultipleQuestionNumberWindowVM(ControlConstructSchemeVM controlConstructScheme)
        {
            this.controlConstructScheme = controlConstructScheme;

            questionNumbers = new ObservableCollection <QuestionNumberVM>();
            foreach (QuestionConstructVM questionConstruct in controlConstructScheme.QuestionConstructs)
            {
                QuestionNumberVM questionNumber = new QuestionNumberVM(questionConstruct);
                questionNumbers.Add(questionNumber);
            }
        }
Esempio n. 2
0
        public static bool RenumberQuestionNumbers(ControlConstructSchemeVM controlConstructScheme, ICollection <QuestionNumberVM> questionNumbers)
        {
            List <QuestionNumberVM> updatingQuestionNumbers = QuestionNumberVM.FindUpdatingQuestionNumbers(questionNumbers);

            if (updatingQuestionNumbers.Count == 0)
            {
                return(false);
            }
            // Change question numbers in the "if condition"s (need before and after question values) on memory
            Dictionary <IfThenElseVM, CreateBranchWindowVM> updatingIfThenElseDict = UpdateQuestionNumberOfBranches(controlConstructScheme, updatingQuestionNumbers);

            // Change QuestionConstruct's no
            QuestionNumberVM.UpdateQuestionNumbers(updatingQuestionNumbers);
            // replace if then else.
            ReplaceIfThenElses(controlConstructScheme, updatingIfThenElseDict);
            return(true);
        }
Esempio n. 3
0
        private static List <QuestionNumberVM> CreateAllQuestionNumber(ControlConstructSchemeVM controlConstructScheme, QuestionNumberVM questionNumber)
        {
            List <QuestionNumberVM> questionNumbers = new List <QuestionNumberVM>();

            foreach (QuestionConstructVM questionConstruct in controlConstructScheme.QuestionConstructs)
            {
                QuestionNumberVM newQuestionNumber = null;
                if (questionConstruct == questionNumber.QuestionConstruct)
                {
                    newQuestionNumber = questionNumber;
                }
                else
                {
                    newQuestionNumber = new QuestionNumberVM(questionConstruct);
                }
                questionNumbers.Add(newQuestionNumber);
            }
            return(questionNumbers);
        }
Esempio n. 4
0
        public static void ValidateQuestionNumbers(ControlConstructSchemeVM controlConstructScheme, ICollection <QuestionNumberVM> questionNumbers)
        {
            QuestionNumberVM.ClearValidationFlags(questionNumbers);
            Dictionary <string, List <QuestionNumberVM> > questionNumberDict = QuestionNumberVM.CreateQuestionNumberDict(questionNumbers);
            Dictionary <string, List <StatementVM> >      statementDict      = CreateStatementDict(controlConstructScheme);

            foreach (KeyValuePair <string, List <QuestionNumberVM> > pair in questionNumberDict)
            {
                List <StatementVM> statements = new List <StatementVM>();
                if (statementDict.ContainsKey(pair.Key))
                {
                    statements = statementDict[pair.Key];
                }
                QuestionNumberVM.CheckDuplicate(pair.Key, pair.Value, statements);
            }
            int errorCount = QuestionNumberVM.CountError(questionNumbers);

            if (errorCount > 0)
            {
                throw new ApplicationException(Resources.DuplicateQuestionNumber);
            }
        }
Esempio n. 5
0
 private void MoveConstruct(int fromIndex, int toIndex)
 {
     using (UndoTransaction tx = new UndoTransaction(UndoManager))
     {
         ConstructVM fromConstruct = Constructs[fromIndex];
         ConstructVM toConstruct   = Constructs[toIndex];
         if (RenumberQuestionNo && fromConstruct is QuestionConstructVM && toConstruct is QuestionConstructVM)
         {
             QuestionNumberVM fromQuestionNumber = new QuestionNumberVM((QuestionConstructVM)fromConstruct);
             fromQuestionNumber.AfterValue = toConstruct.No;
             QuestionNumberVM toQuestionNumber = new QuestionNumberVM((QuestionConstructVM)toConstruct);
             toQuestionNumber.AfterValue = fromConstruct.No;
             List <QuestionNumberVM> questionNumbers = new List <QuestionNumberVM>();
             questionNumbers.Add(fromQuestionNumber);
             questionNumbers.Add(toQuestionNumber);
             SequenceUtils.RenumberQuestionNumbers(this, questionNumbers);
         }
         Constructs.Move(fromIndex, toIndex);
         UpdateModel(false);
         tx.Commit();
     }
     FocusCell();
 }
Esempio n. 6
0
        public static bool RenumberQuestionNumber(ControlConstructSchemeVM controlConstructScheme, QuestionNumberVM questionNumber)
        {
            List <QuestionNumberVM> questionNumbers = new List <QuestionNumberVM>();

            questionNumbers.Add(questionNumber);
            return(RenumberQuestionNumbers(controlConstructScheme, questionNumbers));
        }
Esempio n. 7
0
        public static void ValidateQuestionNumber(ControlConstructSchemeVM controlConstructScheme, QuestionNumberVM questionNumber)
        {
            List <QuestionNumberVM> questionNumbers = CreateAllQuestionNumber(controlConstructScheme, questionNumber); // for duplicate check

            ValidateQuestionNumbers(controlConstructScheme, questionNumbers);
        }