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)); }
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; } }