public IActionResult Question(string answer, int taskId)
        {
            var user = _userData.GetUserWithStats(User.GetUserId());

            var task = _taskData.GetQuestionTask(taskId);

            QuestionTaskStatistic currentStat = null;

            foreach (var stat in user.CourseStatistics)
            {
                foreach (var statQuestionTaskStatistic in stat.QuestionTaskStatistics)
                {
                    if (statQuestionTaskStatistic.TaskId == taskId)
                    {
                        currentStat = statQuestionTaskStatistic;
                        break;
                    }
                }
            }

            if (currentStat != null)
            {
                currentStat.IsComplete    = true;
                currentStat.UserAnswer    = answer;
                currentStat.CorrectAnswer = task.CorrectAnswer;
                if (string.Equals(task.CorrectAnswer, answer, StringComparison.CurrentCultureIgnoreCase))
                {
                    currentStat.IsCorrect = true;
                }
                _statisticData.UpdateQuestionTaskStatistic(currentStat);
                return(Ok(new { rezult = currentStat.IsCorrect, isCorrect = currentStat.IsCorrect, answer = currentStat.CorrectAnswer, userVar = currentStat.UserAnswer }));
            }

            return(NotFound());
        }
        public IActionResult CheckCompleteQuestion(int taskId)
        {
            var user = _userData.GetUserWithStats(User.GetUserId());
            QuestionTaskStatistic currentStat = null;

            foreach (var stat in user.CourseStatistics)
            {
                foreach (var statQuestionTaskStatistic in stat.QuestionTaskStatistics)
                {
                    if (statQuestionTaskStatistic.TaskId == taskId)
                    {
                        currentStat = statQuestionTaskStatistic;
                        break;
                    }
                }
            }

            if (currentStat != null)
            {
                return(Ok(new { isCompleted = currentStat.IsComplete, isCorrect = currentStat.IsCorrect, answer = currentStat.CorrectAnswer, userVar = currentStat.UserAnswer }));
            }

            return(NotFound());
        }
Beispiel #3
0
 public void UpdateQuestionTaskStatistic(QuestionTaskStatistic statistic)
 {
     _context.QuestionTaskStatistics.Update(statistic);
     _context.SaveChanges();
 }