public async Task <IActionResult> Edit(int id, EditQuestionInputModel input) { if (!this.ModelState.IsValid) { return(this.View(input)); } await this.questionsService.UpdateAsync(input); this.TempData["Message"] = "Question successfully updated!"; return(this.RedirectToAction(nameof(this.Details), new { id })); }
public async Task UpdateAsync(EditQuestionInputModel input) { Question question = this.questionsRepository.All().FirstOrDefault(q => q.Id == input.Id); question.Text = new HtmlSanitizer().Sanitize(input.Text); question.Points = input.Points; Choice oldChoice = this.choicesRepository.All().FirstOrDefault(c => c.QuestionId == question.Id && c.IsCorrect); oldChoice.IsCorrect = false; foreach (var choice in input.Choices.Where(c => c.Text != null)) { Choice dbChoice = this.choicesRepository.All().FirstOrDefault(c => c.Id == choice.Id); dbChoice.Text = choice.Text; } if (input.CorrectAnswerOption == "A") { Choice choice = this.choicesRepository.All().Where(c => c.QuestionId == question.Id).FirstOrDefault(); choice.IsCorrect = true; } else if (input.CorrectAnswerOption == "B") { Choice choice = this.choicesRepository.All().Where(c => c.QuestionId == question.Id).Skip(1).FirstOrDefault(); choice.IsCorrect = true; } else if (input.CorrectAnswerOption == "C") { Choice choice = this.choicesRepository.All().Where(c => c.QuestionId == question.Id).Skip(2).FirstOrDefault(); choice.IsCorrect = true; } else { Choice choice = this.choicesRepository.All().Where(c => c.QuestionId == question.Id).Skip(3).FirstOrDefault(); choice.IsCorrect = true; } await this.questionsRepository.SaveChangesAsync(); await this.choicesRepository.SaveChangesAsync(); }
public IActionResult Edit(int id) { EditQuestionInputModel input = this.questionsService.GetById <EditQuestionInputModel>(id); return(this.View(input)); }