public async Task <IActionResult> Edit(string id) { var choice = await this.choicesService.GetChoiceByIdAsync(id); var question = await this.questionsService.GetQuestionByIdAsync(choice.QuestionId); var exam = await this.examsService.GetExamByIdAsync(question.ExamId); var user = await this.userManager.GetUserAsync(this.HttpContext.User); await this.examsService.CheckForPermissions(exam, user); this.ViewData["QuestionId"] = question.Id; this.ViewData["QuestionText"] = question.Text; this.ViewData["ExamName"] = exam.Name; this.ViewData["CourseName"] = exam.Course.Name; var viewModel = new EditChoiceViewModel { Id = choice.Id, Text = choice.Text, IsTrue = choice.IsTrue, }; return(this.View(viewModel)); }
public async Task <IActionResult> Edit(EditChoiceViewModel viewModel) { var choice = await this.choicesService.GetChoiceByIdAsync(viewModel.Id); if (!this.ModelState.IsValid) { return(this.View(viewModel)); } await this.choicesService.EditChoiceAsync(viewModel); return(this.RedirectToAction("Details", "Questions", new { id = choice.QuestionId })); }
public async Task EditChoiceAsync(EditChoiceViewModel model) { var choice = await this.choiceRepository.All() .FirstOrDefaultAsync(x => x.Id == model.Id); if (choice == null) { throw new ArgumentException("There is no choice with this id."); } choice.Text = model.Text; choice.IsTrue = model.IsTrue; this.choiceRepository.Update(choice); await this.choiceRepository.SaveChangesAsync(); }
public async Task EditChoiceAsyncShouldEditCorrectly() { var newText = "New Choice Text"; var newIsTrue = false; var choice = await this.AddChoiceAsync(); var editChoiceViewModel = new EditChoiceViewModel { Id = choice.Id, Text = newText, IsTrue = newIsTrue, }; await this.Service.EditChoiceAsync(editChoiceViewModel); var editedChoice = await this.DbContext.Choices.FirstOrDefaultAsync(x => x.Id == choice.Id); Assert.Equal(newText, editedChoice.Text); Assert.False(editedChoice.IsTrue); }