예제 #1
0
        public IActionResult GetAll()
        {
            // Teste 1: retorno simples só para ver o conteúdo no browser
            //return Ok("Retornou todos.");

            // Teste 2: comunicação com o Postman
            //return Ok(_pilotoRepository.GetAll());

            // Teste 3: visualizando o conteúdo (JSON) da listagem de pilotos no Postaman

            /*List<Piloto> pilotos = new List<Piloto>();
             *
             * var piloto = new Piloto()
             * {
             * ID = 1,
             * Nome = "Sangue frio"
             * };
             * pilotos.Add(piloto);
             *
             * piloto = new Piloto()
             * {
             * ID = 2,
             * Nome = "Hot Wheels"
             * };
             * pilotos.Add(piloto);
             *
             * return Ok(pilotos); // indica o "Status Code" do HTTP (OK = 200). */

            // Teste 4: 404 (Not found)

            /*var pilotos = _pilotoRepository.GetAll();
             * if (!pilotos.Any())
             * return NotFound();
             */

            // Teste 5: outros problemas (tratamento de erros)
            try
            {
                var pilotos = _pilotoRepository.GetAll();
                if (!pilotos.Any())
                {
                    return(StatusCode(StatusCodes.Status404NotFound, "Não existe pilotos cadastrados!"));
                }

                //return Ok();
                // mais elegante:
                return(StatusCode(StatusCodes.Status200OK, pilotos));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString());

                // Alternativa 1
                // retornando a mensagem de erro (analisar se pode enviar a mensagem, talvez tratá-la. Retornar uma genérica, por exemplo, "Entrar em contato com o suporte").
                // além disso, "logar" a mensagem, para futuramente fezer uma analisa (nesse pode ser a mensagem na integra).
                //return BadRequest(ex.ToString());

                // Alternativa 2 (mais elegante)
                return(StatusCode(StatusCodes.Status500InternalServerError, "Erro. Entrar em contato com o suporte!!!"));
            }
        }