コード例 #1
0
        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);
        }
コード例 #2
0
 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));
     }
 }
コード例 #3
0
        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);
        }
コード例 #4
0
 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();
 }
コード例 #5
0
        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();
        }
コード例 #6
0
 public void UnregisterQuestion(QuestionBuilder toUnregister)
 {
     sortedQuestionBuilders.Remove(toUnregister);
     RefreshNumeration();
 }