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); }
// 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); }