public async Task <IActionResult> Edit(QuestionEditVM model) { if (ModelState.IsValid) { var question = await _context.Question.SingleOrDefaultAsync(m => m.Id == model.Id); try { if (null == question) { return(NotFound()); } //var options = new List<QuestionOption>(); //foreach (var item in model.Options) //{ // options.Add(new QuestionOption() { // Description = item.Description, // IsAnswer = item.IsAnswer // }); //} question.Id = model.Id; question.QuestionText = model.Question; question.AnswerText = model.Answer; //question.QuestionOptions = options; question.Options = model.Options.Select(opt => new QuestionOption() { Description = opt.Description, IsAnswer = opt.IsAnswer }).ToList(); question.AnswerId = model.Options.SingleOrDefault(id => id.IsAnswer).Id; _context.Update(question); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!QuestionExists(question.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } model.ExamTypes = new SelectList(_context.ExamTypes, "Id", "Name", model.ExamTypeId); model.Subjects = new SelectList(_context.Subjects, "Id", "Name", model.SubjectId); return(View(model)); }
// GET: Question/Edit/5 public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var question = await _context.Question.SingleOrDefaultAsync(m => m.Id == id); if (question == null) { return(NotFound()); } //var options = new List<QuestionOptionEditVM>(); //foreach (var item in question.QuestionOptions) //{ // options.Add(new QuestionOptionEditVM() // { // Id = item.Id, // Description = item.Description, // IsAnswer = item.IsAnswer // }); //} var model = new QuestionEditVM() { Id = question.Id, Question = question.QuestionText, Points = question.Points, Answer = question.AnswerText, //Options = options; Options = question.Options.Select(opt => new QuestionOptionEditVM() { Id = opt.Id, Description = opt.Description, IsAnswer = opt.IsAnswer }).ToList(), ExamTypes = new SelectList(_context.ExamTypes, "Id", "Name", question.ExamTypeId), Subjects = new SelectList(_context.Subjects, "Id", "Name", question.SubjectId) }; return(View(question)); }