public Pokemon GetPokemonByName(string name) { var pokemon = _repository.GetPokemonByName(name); if (pokemon == null) { throw new NotFoundException($"Pokemon with name {name} not found."); } return(pokemon); }
public async Task <ActionResult <Pokemon> > CreatePokemon(Pokemon pokemon) { try { if (pokemon == null) { return(BadRequest()); } var pokemonByName = await _pokemonRepository.GetPokemonByName(pokemon.Name); if (pokemonByName != null) { ModelState.AddModelError("name", "Pokemon name already in use"); return(BadRequest(ModelState)); } var createdPokemon = await _pokemonRepository.AddPokemon(pokemon); return(CreatedAtAction(nameof(GetPokemon), new { id = 1 }, createdPokemon)); } catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError, "Error retrieving data from the database")); } }