private async Task <UserQuizAnswer> ExecuteQueryGetUserAnswerByAttempt(QuizAttempt quizAttempt) { UserQuizAnswer userQuizAnswer = new UserQuizAnswer(); using (SqlConnection connection = GetConnection()) { connection.Open(); SqlCommand command = CreateCommand($"SELECT * FROM [dbo].[UserAnswer] " + $"JOIN [dbo].[Answer] ON Answer.id = UserAnswer.answer_id WHERE" + $" [UserAnswer].quiz_attempt_id = {quizAttempt.Id}", connection); using (SqlDataReader reader = command.ExecuteReader()) { if (reader.HasRows) { userQuizAnswer.UserAnswers = new List <Answer>(); while (reader.Read()) { Answer answer = new Answer(); answer.AnswerText = reader.GetStringByName("answer_text"); answer.Id = reader.GetInt32ByName("answer_id"); answer.IsRight = reader.GetBoolByName("is_right"); answer.QuestionId = reader.GetInt32ByName("question_id"); (userQuizAnswer.UserAnswers as List <Answer>).Add(answer); } } } } return(userQuizAnswer); }
public UserQuizAnswer UpdateAnswer(UserQuizAnswer userQuizAnswerChanges) { var userQuizAnswer = dBContext.UserQuizAnswers.Attach(userQuizAnswerChanges); userQuizAnswer.State = EntityState.Modified; dBContext.SaveChanges(); return(userQuizAnswerChanges); }
public IActionResult ChooseAnswer([FromBody] UserQuizAnswer userQuizAnswer) { var lang = Request.Headers["language"].ToString(); var errorMessages = new List <string>(); try { var userQuiz = _userQuizRepository.FindById(userQuizAnswer.UserQuizId); var question = _quizRepository.FindQuestionById(userQuizAnswer.QuestionId); var answer = _quizRepository.FindAnswerById(userQuizAnswer.AnswerId); if (userQuiz == null || question == null || answer == null) { errorMessages.Add(_translator.GetTranslation("ERROR", lang)); return(BadRequest(new { errors = errorMessages })); } var curUserQuizAnswer = _userQuizRepository.Find(userQuiz.Id, question.Id); UserQuizAnswer createdUserQuizAnswer = null; if (curUserQuizAnswer == null) { var newUserQuizAnswer = new UserQuizAnswer() { UserQuiz = userQuiz, UserQuizId = userQuiz.Id, Question = question, QuestionId = question.Id, Answer = answer, AnswerId = answer.Id, ChooseDateTime = DateTime.Now }; createdUserQuizAnswer = _userQuizRepository.CreateAnswer(newUserQuizAnswer); } else { curUserQuizAnswer.Answer = answer; curUserQuizAnswer.AnswerId = answer.Id; curUserQuizAnswer.ChooseDateTime = DateTime.Now; createdUserQuizAnswer = _userQuizRepository.UpdateAnswer(curUserQuizAnswer); } return(Ok(new { createdUserQuizAnswer })); } catch { errorMessages.Add(_translator.GetTranslation("ERROR", lang)); return(BadRequest(new { errors = errorMessages })); } }
public ActionResult Index(UserQuizViewModel model) { if (ModelState.IsValid) { User user = new User { Name = model.Name, Email = model.Email }; db.Users.Add(user); db.SaveChanges(); UserQuiz userQuiz = new UserQuiz { QuizID = model.Quiz.ID, UserID = user.ID }; db.UserQuizs.Add(userQuiz); db.SaveChanges(); foreach (var question in model.QuizQuestionAndAnswer) { UserQuizAnswer userQuizAnswer = null; if (question.AnswerType == "TX") { userQuizAnswer = new UserQuizAnswer { QuizAnswerID = question.Answers[0].ID, UserQuizText = question.UserAnswer, UserQuizID = userQuiz.ID }; } else { userQuizAnswer = new UserQuizAnswer { QuizAnswerID = Convert.ToInt32(question.UserAnswer), UserQuizID = userQuiz.ID }; } db.UserQuizAnswers.Add(userQuizAnswer); db.SaveChanges(); } return(RedirectToAction("Results", new { id = user.ID })); } return(View(model)); }
public async Task <UserQuizAnswer> AddUserQuizAnswer(int submissionId, bool isRightAnswer, string blockId, string itemId, string text, int quizBlockScore, int quizBlockMaxScore) { var answer = new UserQuizAnswer { SubmissionId = submissionId, IsRightAnswer = isRightAnswer, BlockId = blockId, ItemId = itemId, Text = text, QuizBlockScore = quizBlockScore, QuizBlockMaxScore = quizBlockMaxScore }; db.UserQuizAnswers.Add(answer); await db.SaveChangesAsync().ConfigureAwait(false); return(answer); }
/////////////////////// public UserQuizAnswer CreateAnswer(UserQuizAnswer userQuizAnswer) { dBContext.UserQuizAnswers.Add(userQuizAnswer); dBContext.SaveChanges(); return(userQuizAnswer); }