Пример #1
0
        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);
        }
Пример #2
0
        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);
                }
            }
        }
Пример #3
0
        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));
 }
Пример #5
0
 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)));
 }