public async Task <IActionResult> Post([FromBody] ToEntityMedicoViewModel medicoViewModel) { if (!ModelState.IsValid) { _logger.Error($"Erro: {_httpContextAccessor.HttpContext.Connection.RemoteIpAddress} - Parâmetros inválidos."); return(StatusCode(400, "Parâmetros da chamada inválidos")); } try { _logger.Information("Inciando o processo de cadastro do médico."); var medico = _mapper.Map <Medico>(medicoViewModel); if (!_medicoValidator.Validate(medico).IsValid) { _logger.Error($"Erro: {_httpContextAccessor.HttpContext.Connection.RemoteIpAddress} - Entidade inválida."); return(StatusCode(400, _medicoValidator.Validate(medico).Errors.ToList())); } _medicoRepository.Adicionar(medico); return(Ok(new { message = "Médico cadastrado com sucesso.", data = medico.Id })); } catch (Exception ex) { _logger.Error($"Erro: {_httpContextAccessor.HttpContext.Connection.RemoteIpAddress} - Algo deu errado ao cadastrar o médico: {ex.Message}"); return(StatusCode(500, "Internal server error")); } }
public async Task <IActionResult> Put([FromBody] ToEntityMedicoViewModel medicoViewModel) { if (!ModelState.IsValid) { _logger.Error($"Erro: {_httpContextAccessor.HttpContext.Connection.RemoteIpAddress} - Parâmetros inválidos."); return(StatusCode(400, "Parâmetros da chamada inválidos")); } try { _logger.Information("Inciando o processo de atualização do médico."); var medico_obtido = _medicoRepository.ObterPorId(medicoViewModel.Id); if (medico_obtido == null) { _logger.Error($"Erro: {_httpContextAccessor.HttpContext.Connection.RemoteIpAddress} - Médico não localizado na base de dados."); return(StatusCode(404, "Médico inexistente")); } var Medico = _mapper.Map <Medico>(medicoViewModel); if (!_medicoValidator.Validate(Medico).IsValid) { _logger.Error($"Erro: {_httpContextAccessor.HttpContext.Connection.RemoteIpAddress} - Entidade inválida."); return(StatusCode(400, _medicoValidator.Validate(Medico).Errors.ToList())); } _medicoRepository.Atualizar(Medico); return(Ok(new { message = "Médico atualizado com sucesso.", data = Medico })); } catch (Exception ex) { _logger.Error($"Erro: {_httpContextAccessor.HttpContext.Connection.RemoteIpAddress} - Algo deu errado ao atualizar o médico: {ex.Message}"); return(StatusCode(500, "Internal server error")); } }