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); } }
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); }
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); }
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); } }
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(); }
public static bool RenumberQuestionNumber(ControlConstructSchemeVM controlConstructScheme, QuestionNumberVM questionNumber) { List <QuestionNumberVM> questionNumbers = new List <QuestionNumberVM>(); questionNumbers.Add(questionNumber); return(RenumberQuestionNumbers(controlConstructScheme, questionNumbers)); }
public static void ValidateQuestionNumber(ControlConstructSchemeVM controlConstructScheme, QuestionNumberVM questionNumber) { List <QuestionNumberVM> questionNumbers = CreateAllQuestionNumber(controlConstructScheme, questionNumber); // for duplicate check ValidateQuestionNumbers(controlConstructScheme, questionNumbers); }