public async Task <IActionResult> CreateUserResult(int quizId, [FromBody] int [] toCheck) { var userId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value); var quizResultFromRepo = await _repo.GetQuizResultForUser(userId, quizId); if (quizResultFromRepo != null) { return(BadRequest("Nie możesz ponownie rozwiązać tego quizu")); } var questionforUpdateDto = await _repo.GetQuestions(quizId); var quizResult = new QuizResultForCreationDto(); quizResult.UserId = userId; quizResult.QuizId = quizId; int result = 0; int i = 0; foreach (var question in questionforUpdateDto) { if (question.CorrectAnswer == toCheck[i]) { result++; } i++; } await UpdateRanking(result); quizResult.Result = result; var quizResultToSave = new QuizResult(); _mapper.Map(quizResult, quizResultToSave); _repo.AddToRepo(quizResultToSave); if (await _repo.SaveAll()) { return(Ok()); } throw new Exception("Nie udalo sie zapisac danych o ukonczonym quizie"); }