public ActionResult Create(CreateQuestionViewModel questionViewModel) { if (!ModelState.IsValid) return View(questionViewModel); var correctAnswer = new Answer { Text = questionViewModel.CorrectAnswer.Text }; var possibleAnswers = new List<Answer>(questionViewModel.FaultyAnswers.Select(a => new Answer { Text = a.Text })) { correctAnswer }; // Step 1 - sätt in alla svar possibleAnswers.ForEach(a => _quizContext.Add(a)); _quizContext.Save(); var question = new Question { CorrectAnswer = correctAnswer, PossibleAnswers = possibleAnswers, Text = questionViewModel.Text, UpdateStamp = DateTime.Now }; _quizContext.Add(question); try { _quizContext.Save(); } catch (Exception e) { return View(questionViewModel); } return RedirectToAction("Index"); }
// // GET: /Question/Details/5 public ActionResult Details(int id) { var question = _quizContext.Questions .Include(q => q.PossibleAnswers) .Single(q => q.Id.Equals(id)); var questionViewModel = new CreateQuestionViewModel { CorrectAnswer = new CreateAnswerViewModel { Id = question.CorrectAnswer.Id, Text = question.CorrectAnswer.Text }, FaultyAnswers = question.PossibleAnswers .Where(a => a.Id != question.CorrectAnswer.Id) .Select(a => new CreateAnswerViewModel { Id = a.Id, Text = a.Text }) .ToList(), Text = question.Text }; return View(questionViewModel); }
public ActionResult Edit(CreateQuestionViewModel questionViewModel) { if (!ModelState.IsValid) return View("Edit", questionViewModel); var possibleAnswers = questionViewModel.FaultyAnswers .Select(a => new Answer { Id = a.Id, Text = a.Text }).ToList(); possibleAnswers.Add( new Answer { Id = questionViewModel.CorrectAnswer.Id, Text = questionViewModel.CorrectAnswer.Text }); var question = new Question { CorrectAnswer = new Answer { Id = questionViewModel.CorrectAnswer.Id, Text = questionViewModel.CorrectAnswer.Text }, Id = questionViewModel.Id, PossibleAnswers = possibleAnswers, Text = questionViewModel.Text, UpdateStamp = DateTime.Now }; _quizContext.Update(question); try { _quizContext.Save(); } catch (Exception e) { return View("Edit", questionViewModel); } return RedirectToAction("Index"); }