コード例 #1
0
        public void Update(PerQuestionView view)
        {
            if (QuestionSaves.Keys.Contains(view.Question.Id))
            {
                QuestionSaves.Remove(view.Question.Id);
            }

            QuestionSaves.Add(view.Question.Id, new QuestionSave(view, _cx));
        }
コード例 #2
0
        public TestSave(QuizContext context, List <PerQuestionView> questionViews)
        {
            _cx = context;

            Id = _GenerateId();

            foreach (var item in questionViews)
            {
                var answerName = ((IAnswerName)item.Test.Model).GetTypeName();

                var answerInstance = (XmlBase)Activator.CreateInstance(XmlBase.GetType(answerName));

                var emptySave = new QuestionSave()
                {
                    View       = item,
                    QuestionId = item.Question.Id,
                    Answer     = answerInstance
                };

                QuestionSaves.Add(item.Question.Id, emptySave);
            }

            QuestionOrders = questionViews.Select(x => new
            {
                QuestionId    = x.Question.Id,
                SectionOrder  = x.Question.Section.Order,
                QuestionOrder = x.Question.OrderNumber
            }).ToList().
                             OrderBy(y => y.SectionOrder + "_" + y.QuestionOrder)
                             .ToList().Select(z => z.QuestionId).ToList();

            for (int i = 0; i < QuestionOrders.Count; ++i)
            {
                var item = questionViews.Single(x => x.Question.Id == QuestionOrders[i]);

                item.QuestionOrder = i;
            }
        }