예제 #1
0
        /// <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);
        }