public Models.Pokemon.Pokemon Transform(PokemonResponseModel pokemonResponseModel) { Models.Pokemon.Pokemon pokemon = TransformApiPokemonToPokeServerEvolutionlessPokemon(pokemonResponseModel); var species = _restServiceSpecies.Request(_envConfig.Value.PokeApi.SpeciesAPI.APIUriFormatter(pokemon.Name), "GET"); pokemon.Description = species.flavor_text_entries.FirstOrDefault(f => f.language.name == CultureInfo.CurrentCulture.TwoLetterISOLanguageName.ToLower())?.flavor_text; pokemon.Evolutions = ExtractEvolutions(pokemon, species).ToArray(); return(pokemon); }
private void ResolveEvolutionTree(Models.Pokemon.Pokemon pokemon, IEnumerable <EvolvesTo> evolutionInfo, List <string> relatedPokemons) { foreach (var evolveInfo in evolutionInfo) { if (evolveInfo.species.name != pokemon.Name) { relatedPokemons.Add(evolveInfo.species.name); } if (evolveInfo.evolves_to != null && evolveInfo.evolves_to.Any()) { ResolveEvolutionTree(pokemon, evolveInfo.evolves_to, relatedPokemons); } } }
private List <string> ExtractEvolutions(Models.Pokemon.Pokemon pokemon, PokemonSpeciesResponseModel species) { var evolutionInfo = _restServiceEvolution.Request(species.evolution_chain.url, "GET"); List <string> relatedPokemons = new List <string>(); if (evolutionInfo.chain.species.name != pokemon.Name) { relatedPokemons.Add(evolutionInfo.chain.species.name); } if (evolutionInfo.chain.evolves_to != null && evolutionInfo.chain.evolves_to.Any()) { ResolveEvolutionTree(pokemon, evolutionInfo.chain.evolves_to, relatedPokemons); } return(relatedPokemons); }
public Task Update(Models.Pokemon.Pokemon pokemon) { return(_cachingService.Save(pokemon)); }
public Task Update(Models.Pokemon.Pokemon pokemon) { throw new NotImplementedException(); }
public Task Update(Models.Pokemon.Pokemon pokemon) { return(Task.Run(() => _mongoService.Update(pokemon.Id, pokemon))); }
public Task Add(Models.Pokemon.Pokemon pokemon) { return(Task.Run(() => _mongoService.Insert(pokemon))); }