public IActionResult GetAnswer(string id, string answer, string correctAnswer) { var list = _context.UsersAnswers; var users = _context.Users.Where(u => u.Email == User.Identity.Name); string userId = ""; foreach (var el in users) { userId = el.Id; } var answers = list.Where(p => p.QuestionId == Convert.ToInt32(id) && p.UserId == userId); var question = _context.Questions.Find(Convert.ToInt32(id)); bool result = answer == correctAnswer; int TestId = question.TestId; if (answers.Count() != 0) { var el = answers.First(); el.IsCorrectAnswer = result; _context.Update(el); _context.SaveChanges(); } else { MyWebTest.Models.UsersAnswer ans = new UsersAnswer() { IsCorrectAnswer = result, UserId = userId, QuestionId = Convert.ToInt32(id) }; _context.Add(ans); _context.SaveChanges(); } return(RedirectToRoute("start_test", new { id = TestId.ToString() })); }
public bool AddUserAnswer(UserQuestionViewModel model) { var usersAnswer = new UsersAnswer() { AnswerDate = DateTime.UtcNow, QuestionId = model.QuestionDto.Id, UserId = model.User.Id, Answer = model.QuestionDto.Answer }; _usersAnswerDal.Add(usersAnswer); return(_usersAnswerDal.SaveChanges()); }
private int SaveResult(int quizId, Dictionary <int, int> selectedAnswers, int scorePercentage) { var user = this.User.Identity.GetUserId(); TakenQuiz takenQuiz = new TakenQuiz(); takenQuiz.UserId = user; takenQuiz.QuizDefinitionId = quizId; foreach (var item in selectedAnswers) { var answerId = item.Value; UsersAnswer givenAnswer = new UsersAnswer(); givenAnswer.AnswerDefinitionId = answerId; givenAnswer.TakenQuiz = takenQuiz; this.Db.UsersAnswers.Add(givenAnswer); } takenQuiz.Score = scorePercentage; this.Db.TakenQuizzes.Add(takenQuiz); this.Db.SaveChanges(); return(takenQuiz.Id); }