Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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 }));
            }
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        ///////////////////////

        public UserQuizAnswer CreateAnswer(UserQuizAnswer userQuizAnswer)
        {
            dBContext.UserQuizAnswers.Add(userQuizAnswer);
            dBContext.SaveChanges();
            return(userQuizAnswer);
        }