public QuestionBuilder AddQuestion(Question question) { if (question == null) { throw new ArgumentNullException(nameof(question)); } QuestionBuilder result = QuestionBuilder.CreateBuilder((Question)question.Clone(), this); questionBuilders.Add(result); GetParentTicketBuilder().RegisterQuestion(result); return(result); }
public override void Load(QuestionGroup instance) { base.Load(instance); QuestionGroupName = Instance.QuestionGroupName; for (int i = 0; i < Instance.Questions.Count; i++) { questionBuilders.Add(QuestionBuilder.CreateBuilder(Instance.Questions[i], this)); } for (int i = 0; i < Instance.ChildQuestionGroups.Count; i++) { questionGroupBuilders.Add(new QuestionGroupBuilder(Instance.ChildQuestionGroups[i], this)); } }
public bool RemoveQuestion(QuestionBuilder questionBuilder) { if (questionBuilder == null) { throw new ArgumentNullException(nameof(questionBuilder)); } bool result = questionBuilders.Remove(questionBuilder); if (result) { GetParentTicketBuilder().UnregisterQuestion(questionBuilder); } return(result); }
public void RegisterQuestion(QuestionBuilder toRegister) { if (!GetQuestionBuilders().Contains(toRegister)) { throw new ArgumentException(); } if (toRegister == null) { throw new ArgumentNullException(nameof(toRegister)); } if (sortedQuestionBuilders.Contains(toRegister)) { return; } sortedQuestionBuilders.Add(toRegister); toRegister.RefreshNumber(); }
public void SwapNumeration(QuestionBuilder questionA, QuestionBuilder questionB) { if (questionA == null) { throw new ArgumentNullException(nameof(questionA)); } if (questionB == null) { throw new ArgumentNullException(nameof(questionB)); } int questionIndexA = sortedQuestionBuilders.IndexOf(questionA); int questionIndexB = sortedQuestionBuilders.IndexOf(questionB); if (questionIndexA < 0 || questionIndexB < 0) { throw new ArgumentException(); } QuestionBuilder temp = sortedQuestionBuilders[questionIndexA]; sortedQuestionBuilders[questionIndexA] = sortedQuestionBuilders[questionIndexB]; sortedQuestionBuilders[questionIndexB] = temp; sortedQuestionBuilders[questionIndexB].RefreshNumber(); sortedQuestionBuilders[questionIndexA].RefreshNumber(); }
public void UnregisterQuestion(QuestionBuilder toUnregister) { sortedQuestionBuilders.Remove(toUnregister); RefreshNumeration(); }