public IActionResult AdicionarPiloto([FromBody] PilotoModelo pilotoModelo) { try { _logger.LogInformation("Mapeando piloto Modelo"); var piloto = _mapper.Map <Piloto>(pilotoModelo); _logger.LogInformation($"Verificando se existe piloto com o id informado{piloto.Id}"); if (_pilotoRepositorio.Existe(piloto.Id)) { _logger.LogWarning($"Já existe piloto com a mesma identificação{piloto.Id}"); return(StatusCode(409, "Já existe piloto com a mesma identificação ")); } _logger.LogInformation("Adicionando piloto"); _logger.LogInformation($"Nome Piloto:{piloto.Nome}"); _logger.LogInformation($"SobreNome do Piloto:{piloto.SobreNome}"); _pilotoRepositorio.Adicionar(piloto); _logger.LogInformation("Operação Adicionar Piloto ocorreu sem erros"); _logger.LogInformation("Mapeando o retorno"); var pilotoModeloRetorno = _mapper.Map <PilotoModelo>(piloto); _logger.LogInformation("Chamando a rota Obter"); 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")); } }
public IActionResult AdicionarPiloto([FromBody] PilotoModelo pilotoModelo) { try { _logger.LogInformation("Adicionando um piloto.."); //Repassa do modelo para a entidade de domínio de forma automatica. var piloto = _mapper.Map <Piloto>(pilotoModelo); if (_pilotoRepositorio.Existe(piloto.Id)) { return(StatusCode(409, "Já existe um piloto cadastrado com esta identificação")); } _pilotoRepositorio.Adicionar(piloto); var pilotoModeloRetorno = _mapper.Map <PilotoModelo>(piloto); //Retorna o caminho completo do 'recurso' relacionado ao novo piloto inserido e o objeto de modelo vinculado. return(CreatedAtRoute("Obter", new { id = piloto.Id }, pilotoModeloRetorno)); } catch (Exception ex) { _logger.LogError(ex.ToString()); return(StatusCode(500, "Ocorreu uma falha inesperada. Entre em contato com o suporte técnico.")); } }
public IActionResult AdicionarPiloto([FromBody] Piloto piloto) { try { if (_pilotoRepositorio.Existe(piloto.Id)) { return(StatusCode(409, "Pilo já existe com essa identificação!")); } _pilotoRepositorio.Adicionar(piloto); return(CreatedAtRoute("Obter", new { id = piloto.Id }, piloto)); } catch (Exception) { return(StatusCode(500, "Erro no servidor!")); } }
public IActionResult AdicionarPiloto([FromBody] PilotoModelo pilotoModelo) { try { _logger.LogInformation($"POST / AdicionarPiloto / Id: {pilotoModelo.Id}"); //Cria o objeto piloto e passa os dados de forma igual o do objeto pilotoModelo //Isso é usado para não expor a entidade piloto, ao invés disso ele é substituído por um modelo _logger.LogInformation("Mapeando pilotoModelo -> piloto"); var piloto = _mapper.Map <Piloto>(pilotoModelo); _logger.LogInformation($"Verificando se existe piloto com o id: { piloto.Id}"); if (_pilotoRepositorio.Existe(piloto.Id)) { _logger.LogWarning($"Já existe piloto com a mesma identificação: {piloto.Id}"); return(StatusCode(409, "Já existe piloto com a mesma identificação")); } _logger.LogInformation("Adicionando piloto"); _logger.LogInformation($"Nome: { piloto.Nome}"); _logger.LogInformation($"Sobrenome: { piloto.SobreNome}"); _pilotoRepositorio.Adicionar(piloto); _logger.LogInformation("Operação 'Adicionar Piloto' ocorreu sem falhas"); //converte objeto da classe Piloto em objeto da classe PilotoModelo, é o oposto do que é feito no início do método _logger.LogInformation("Mapeando piloto -> pilotoModeloRetorno"); var pilotoModeloRetorno = _mapper.Map <PilotoModelo>(piloto); //O CreatedAtRoute em questão faz: //Informa que o recurso foi criado (StatusCode 201) //Redireciona para o método cujo nome da rota é "Obter" //Passa como parâmetro o id do piloto adicionado //Envia também o objeto piloto _logger.LogInformation("Chamando a rota 'Obter'"); return(CreatedAtRoute("Obter", new { id = piloto.Id }, pilotoModeloRetorno)); } catch (Exception e) { _logger.LogError(e.ToString()); return(StatusCode(500, "Ocorreu um erro interno no sistema. Por favor entre em contato com o suporte")); } }