コード例 #1
0
ファイル: QuizController.cs プロジェクト: FuryThrue/Ulearn
        private Tuple <QuizState, int> GetQuizState(string courseId, string userId, Guid slideId)
        {
            log.Info($"Ищу статус прохождения теста {courseId}:{slideId} для пользователя {userId}");
            var states = userQuizzesRepo.GetQuizDropStates(courseId, userId, slideId).ToList();

            var queueItem = userQuizzesRepo.FindManualQuizChecking(courseId, slideId, userId);

            if (queueItem != null)
            {
                log.Info($"Статус прохождения теста {courseId}:{slideId} для пользователя {userId}: есть ручная проверка №{queueItem.Id}, проверяется ли сейчас: {queueItem.IsLocked}");
                return(Tuple.Create(queueItem.IsLocked ? QuizState.IsChecking : QuizState.WaitForCheck, states.Count));
            }

            if (states.Any(b => !b))
            {
                return(Tuple.Create(QuizState.Subtotal, states.Count));
            }
            return(Tuple.Create(QuizState.NotPassed, states.Count));
        }