Beispiel #1
0
        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);
        }
Beispiel #2
0
        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;
     }
 }
Beispiel #6
0
        //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;
            }
        }