Ejemplo n.º 1
0
        public async Task <IActionResult> AddOpenAnswer(OpenAnswerForCreationDto answerDto)
        {
            var user = await _userRepository.GetUserByUsernameAsync(answerDto.Username);

            var answer = _mapper.Map <OpenAnswer>(answerDto);

            answer.UserId = user.Id;

            var option = await _optionRepository.GetOptionById(answerDto.OptionId);

            var isExerciseSolved = _openAnswerRepository.CheckIfUserAddedAnswerForOption(option.Id, user.Id);

            if (isExerciseSolved)
            {
                throw new Exception("Zadanie zostało już rozwiązane");
            }
            else
            {
                if (user != null)
                {
                    _openAnswerRepository.Add <OpenAnswer>(answer);
                    await _openAnswerRepository.SaveAll();

                    user.OpenAnswers.Add(answer);
                    await _userRepository.SaveAll();

                    return(Ok(_mapper.Map <OpenAnswerToReturnDto>(answer)));
                }
            }
            throw new Exception("Nie udało się dodać rozwiązania");
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> EditOpenAnswer(OpenAnswerForCreationDto answerDto)
        {
            var user = await _userRepository.GetUserByUsernameAsync(answerDto.Username);

            if (user != null)
            {
                var answer = _mapper.Map <OpenAnswer>(answerDto);
                answer.UserId = user.Id;

                var option = await _optionRepository.GetOptionById(answer.OptionId);

                _openAnswerRepository.Edit(answer);
                if (await _openAnswerRepository.SaveAll())
                {
                    return(Ok(_mapper.Map <OpenAnswerToReturnDto>(answer)));
                }
            }
            throw new Exception("Nie znaleziono rozwiązania");
        }