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"); }
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"); }