Exemple #1
0
        private void CheckExistUser(PassedQuizDto dto)
        {
            var user = _userService.GetById(dto.UserId).Result;

            if (user != null)
            {
                dto.User   = null;
                dto.UserId = user.Id;
            }
        }
Exemple #2
0
        private void CheckPassedQuiz(PassedQuizDto dto)
        {
            var PassedQuizzes = _passedquizRepository.GetAll().Where(passquiz => (passquiz.QuizId == dto.QuizId) && (passquiz.UserId == passquiz.UserId)).ToList();
            var result        = _passedquizRepository.GetAll().Include(passquiz => passquiz.Quiz).ToList().FirstOrDefault();

            if (result != null)
            {
                var maxAttempts = result.Quiz.MaxAttempts;
                if (PassedQuizzes.Count >= maxAttempts)
                {
                    throw new System.Exception();
                }
            }
        }
Exemple #3
0
        public async Task <PassedQuizDto> Insert(PassedQuizDto passedQuizDto)
        {
            CheckPassedQuiz(passedQuizDto);
            CheckExistUser(passedQuizDto);
            var entity = new PassedQuiz();

            _mapper.Map(passedQuizDto, entity);
            entity.User.UserRoleId = 2;
            entity.Grade           = CalculateGrade(entity.PassedQuizAnswers, entity.QuizId);
            entity.isPassed        = IsPassed(entity.QuizId, entity.Grade);
            await _passedquizRepository.Insert(entity).ConfigureAwait(false);

            await _passedquizRepository.SaveAsync().ConfigureAwait(false);

            return(_mapper.Map <PassedQuiz, PassedQuizDto>(entity));
        }
        public async Task <ActionResult <PassedQuizDto> > PostQuiz(PassedQuizDto passedQuiz)
        {
            await _passedQuizService.Insert(passedQuiz).ConfigureAwait(false);

            return(Ok(passedQuiz));
        }