예제 #1
0
        public IActionResult AdicionarPiloto([FromBody] PilotoModelo pilotoModelo)
        {
            try
            {
                /*Piloto piloto = new Piloto();
                 * piloto.Id = pilotoModelo.Id;
                 * piloto.Nome = pilotoModelo.Nome;*/
                _logger.LogInformation("mapeando piloto modelo");

                var piloto = _mapper.Map <Piloto>(pilotoModelo);

                _logger.LogInformation($"verificando se o piloto id == {piloto.Id} existe na base de dados em memória");
                if (_pilotoRepository.Existe(piloto.Id))
                {
                    _logger.LogWarning($"piloto id = {piloto.Id} já existe.");
                    return(StatusCode(409, "já existe um piloto com este identificador"));
                }

                //[FromBody] - como o asp.net core vai receber os dados da requisição (nesse caso do corpo do json)
                // poderia ser de um formulário, etc
                _logger.LogInformation($"adicionando piloto id {piloto.Id}");
                _pilotoRepository.Adicionar(piloto);
                _logger.LogInformation("piloto inseriu com sucesso!");

                _logger.LogInformation("mapeando piloto inserido para piloto modelo");
                var pilotoModeloRetorno = _mapper.Map <PilotoModelo>(piloto);

                //return Ok("adicionou");
                _logger.LogInformation("retornando piloto modelo novo");
                return(CreatedAtRoute("Obter", new { id = piloto.Id }, pilotoModeloRetorno));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString());
                return(StatusCode(500, "Ocorreu um erro interno no sistema. Por favor entre em contato com suporte."));
            }
        }