public async Task <IActionResult> EditQOT(ChangeCQViewModel changeCQViewModel) { var q = await UserContext.QuestionOfTests.FirstOrDefaultAsync(p => p.Id == changeCQViewModel.QuestionOfTestId); var cq = await UserContext.ClosedQuestions.FirstOrDefaultAsync(p => p.Id == changeCQViewModel.ClosedQuestionId); if (ModelState.IsValid) { try { q.QuestionIndexNumber = changeCQViewModel.QuestionIndexNumber; UserContext.QuestionOfTests.Update(q); await UserContext.SaveChangesAsync(); cq.QuestionContent = changeCQViewModel.QuestionContent; cq.OnlyOneRight = changeCQViewModel.OnlyOneRight; cq.CorrectOptionNumbers = changeCQViewModel.CorrectOptionNumbers; UserContext.ClosedQuestions.Update(cq); await UserContext.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { throw; } return(RedirectToRoute("default", new { controller = "Tests", action = "Details", id = changeCQViewModel.TestId })); } return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> EditQOT(int idTest, int idLevel, int idQuestion) { var test = await UserContext.Tests.FindAsync(idTest); var q = await UserContext.QuestionOfTests.FindAsync(idQuestion); if (test == null || q == null) { return(NotFound()); } var user = await _userManager.GetUserAsync(HttpContext.User); if (user.Equals(test.User)) { if (q.TypeOfQuestionId == 1) { var cq = await UserContext.ClosedQuestions.FirstOrDefaultAsync(p => p.QuestionOfTestId == q.Id); var modelCQ = new ChangeCQViewModel { TestId = test.Id, QuestionOfTestId = q.Id, QuestionIndexNumber = q.QuestionIndexNumber, ClosedQuestionId = cq.Id, QuestionContent = cq.QuestionContent, CorrectOptionNumbers = cq.CorrectOptionNumbers, OnlyOneRight = cq.OnlyOneRight, }; return(View("./Question/ClosedQuestion/EditCQ", modelCQ)); } return(NotFound()); } else { return(NotFound()); } }