private void CheckExistUser(PassedQuizDto dto) { var user = _userService.GetById(dto.UserId).Result; if (user != null) { dto.User = null; dto.UserId = user.Id; } }
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(); } } }
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)); }