public async Task <ActionResult <VacancyDto> > GetVacancyById(int vacancyId) { try { var vacancy = await _vacancyService.GetVacancyByIdAsync(vacancyId); var vacancyDto = _mapper.Map <VacancyDto>(vacancy); return(Ok(vacancyDto)); } catch (VacancyValidationException vacancyValidationException) when(vacancyValidationException.InnerException is NotFoundVacancyException) { var innerMessage = GetInnerMessage(vacancyValidationException); return(NotFound(innerMessage)); } catch (VacancyValidationException vacancyValidationException) { var innerMessage = GetInnerMessage(vacancyValidationException); return(BadRequest(innerMessage)); } catch (VacancyServiceException vacancyServiceException) { return(Problem(vacancyServiceException.Message)); } }