public async Task <IActionResult> RandomTest(RandomTestViewModel model) { if (User.Identity.IsAuthenticated) { var user = await _userManager.GetUserAsync(User); ViewBag.Name = user.Name; } var subject = _subjectService.GetSubject(model.SubjectId); ViewBag.Subject = subject.Name; if (ModelState.IsValid) { return(RedirectToAction("Answers", "Subject", new AnswerViewModel { Answers = model.Answers, ProblemIds = model.ProblemIds, SubjectId = model.SubjectId })); } return(View(model)); }
public async Task <IActionResult> RandomTest(int subjectId) { try { if (User.Identity.IsAuthenticated) { var user = await _userManager.GetUserAsync(User); ViewBag.Name = user.Name; } var subject = _subjectService.GetSubject(subjectId); ViewBag.Subject = subject.Name; var model = new RandomTestViewModel(); var problemsOfSubject = _problemService.GetProblemsBySubjectId(subjectId); for (int i = 1; i <= subject.MaxNumberInTest; i++) { var problemsOfNumber = problemsOfSubject.Where(p => p.Number == i).ToList(); if (problemsOfNumber.Count > 0) { var problem = problemsOfNumber[new Random().Next(0, problemsOfNumber.Count)]; model.ProblemIds.Add(problem.Id); model.Pictures.AddRange(_pictureService.GetPicturesByProblemId(problem.Id)); model.Problems.Add(problem); model.SubjectId = subjectId; } } model.Answers = new string[model.ProblemIds.Count]; return(View(model)); } catch (Exception exc) { return(base.RedirectToAction("Error", "Home", new ErrorViewModel { Message = exc.Message })); } }