public async Task <GameData> AnswerQuestion(int userId, int questionId, int answerId) { GameData gameData = new GameData(); try { Answer answer = await repo.GetAnswer(answerId); User user = await repo.GetUser(userId); if (answer.IsCorrect) { user.Score += answer.Point; } gameData.User = user; gameData.AnswerIsCorrect = answer.IsCorrect; UserQuestionAnswer userQuestionAnswer = new UserQuestionAnswer() { UserId = userId, QuestionId = questionId, AnswerId = answer.Id }; await repo.AddUserQuestionAnswer(userQuestionAnswer); await repo.Save(); } catch (Exception ex) { gameData.Message = "Something went wrong!"; } return(gameData); }
public async Task <int> AddAsync(UserQuestionAnswer userQuestionAnswer) { await _context.UserQuestionAnswers.AddAsync(userQuestionAnswer); await _context.SaveChangesAsync(); return(userQuestionAnswer.Id); }
private void UpdateObject(UserQuestionAnswer _newUserQuestionAnswer, ref UserQuestionAnswer _oldUserQuestionAnswer) { try { foreach (PropertyInfo UserQuestionAnswerPropInfo in _newUserQuestionAnswer.GetType().GetProperties().ToList()) { _oldUserQuestionAnswer.GetType().GetProperty(UserQuestionAnswerPropInfo.Name).SetValue(_oldUserQuestionAnswer, _newUserQuestionAnswer.GetType().GetProperty(UserQuestionAnswerPropInfo.Name).GetValue(_newUserQuestionAnswer)); } } catch (Exception e) { Console.WriteLine(e); throw; } }
public async Task <ActionResult> Solve(int?id) { if (id == null) { return(View("Error")); } var test = await db.Tests.FindAsync(id); if (test == null) { return(View("Error")); } var u = db.Users.Find(User.Identity.GetUserId()); var generated = new GeneratedTest() { Date = DateTime.Now, Score = null, User = u, Test = test }; db.GeneratedTests.Add(generated); var questions = test.Questions.ToList(); questions.Shuffle(new Random()); var testquestions = new List <Question>(); for (int i = 0; i <= test.QuestionLimit - 1; i++) { if (i >= questions.Count) { break; } var questionanswer = new UserQuestionAnswer() { Question = questions[i] }; db.UserQuestionAnswers.Add(questionanswer); questionanswer.GeneratedTest = generated; testquestions.Add(questions[i]); } await db.SaveChangesAsync(); return(View(new TestSolveViewModel() { GeneratedId = generated.Id, Name = test.Name, CourseId = test.Course.Id, Questions = testquestions })); }
public UserQuestionAnswer AddNewUserQuestionAnswer(UserQuestionAnswer _UserQuestionAnswer) { try { using (var context = new VeraEntities()) { context.UserQuestionAnswer.Add(_UserQuestionAnswer); int numOfInserted = context.SaveChanges(); return(numOfInserted > 0 ? _UserQuestionAnswer : null); } } catch (Exception) { throw; } }
//POST User Answers public async Task <IActionResult> SaveAnswers([Bind("Id,CorrectAnswer")] IEnumerable <Question> question, int quizId) { foreach (Question questionResult in question) { if (questionResult.CorrectAnswer != 0 && questionResult.Id != 0) { var user = await GetUserAsync(); var userAnswer = new UserQuestionAnswer { QuestionId = questionResult.Id, AnswerKeyId = questionResult.CorrectAnswer, UserId = user.Id }; _context.Add(userAnswer); await _context.SaveChangesAsync(); } } return(RedirectToAction(nameof(QuizResults), new { id = quizId })); }
public UserQuestionAnswer UpdateUserQuestionAnswer(UserQuestionAnswer _UserQuestionAnswer) { try { using (var context = new VeraEntities()) { var oldUserQuestionAnswer = context.UserQuestionAnswer.FirstOrDefault(u => u.Id == _UserQuestionAnswer.Id); if (oldUserQuestionAnswer != null) { UpdateObject(_UserQuestionAnswer, ref oldUserQuestionAnswer); var numberOfUpdatedUserQuestionAnswer = context.SaveChanges(); return(numberOfUpdatedUserQuestionAnswer > 0 ? _UserQuestionAnswer : null); } return(null); } } catch (Exception e) { Console.WriteLine(e); throw; } }