/// <summary> /// Returns the held items of the given Pokemon, indexed by version ID. /// </summary> private async Task <IEnumerable <WithId <VersionHeldItemContext[]> > > GetHeldItems(Pokemon pokemon) { var itemsList = new List <WithId <VersionHeldItemContext[]> >(); var versions = await VersionService.GetAll(); foreach (var v in versions) { var items = await GetHeldItems(pokemon, v); if (items.Any()) { var itemsEntry = new WithId <VersionHeldItemContext[]>(v.VersionId, items.ToArray()); itemsList.Add(itemsEntry); } } return(itemsList); }
/// <summary> /// Returns flavour text entries for the given species, indexed by version ID. /// </summary> private async Task <IEnumerable <WithId <LocalString[]> > > GetFlavourTextEntries(PokemonSpecies species) { var descriptionsList = new List <WithId <LocalString[]> >(); if (species.FlavorTextEntries.Any()) { foreach (var v in await VersionService.GetAll()) { var relevantDescriptions = species.FlavorTextEntries.Where(f => f.Version.Name == v.Name); if (relevantDescriptions.Any()) { var descriptions = relevantDescriptions.Select(d => new LocalString { Language = d.Language.Name, Value = d.FlavorText }); descriptionsList.Add(new WithId <LocalString[]>(v.VersionId, descriptions.ToArray())); } } } return(descriptionsList); }