Beispiel #1
0
        public async Task <PokemonStatisticsList> GetPokemons_Statistics(List <string> names)
        {
            // Get statistics about a group of pokemon (avg, min, max), filter by names

            // Search for pokemon by name, if one doesn't exist, it is skipped
            List <Pokemon> results = new List <Pokemon>();

            foreach (var name in names)
            {
                var result = await _pokemonRepository.GetPokemon_ByName(name);

                if (result != null)
                {
                    results.Add(result);
                }
            }

            // Calculate statistics for group of Pokemon
            if (results.Count <= 0)
            {
                return(null);
            }
            PokemonStatisticsList statObj = PokemonCalculator.Calculate_Statistics(results);

            return(statObj);
        }
Beispiel #2
0
        // Get Pokemon Statistics List //-------------------------------------------------------------------------------------------------------------------------------
        public static PokemonStatisticsList Calculate_Statistics(List <Pokemon> listPokemon)
        {
            PokemonStatisticsList dictObj = new PokemonStatisticsList()
            {
                Statistics = new Dictionary <string, PokemonStatistics>(),
                Names      = listPokemon.Select(p => p.Name).ToList(),
            };

            dictObj.Statistics.Add("Hp", Calculate_Statistic_Hp(listPokemon));
            dictObj.Statistics.Add("Attack", Calculate_Statistic_Attack(listPokemon));
            dictObj.Statistics.Add("Defense", Calculate_Statistic_Defense(listPokemon));

            dictObj.Statistics.Add("SpAtk", Calculate_Statistic_SpAtk(listPokemon));
            dictObj.Statistics.Add("SpDef", Calculate_Statistic_SpDef(listPokemon));
            dictObj.Statistics.Add("Speed", Calculate_Statistic_Speed(listPokemon));

            return(dictObj);
        }