Пример #1
0
        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"));
            }
        }
Пример #2
0
        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"));
            }
        }