コード例 #1
0
        private async void GetPokemonSettings()
        {
            PkmSettings = await Session.Inventory.GetPokemonSettings().ConfigureAwait(false);

            GetCandy = await Session.Inventory.GetCandyCount(PokemonData.PokemonId).ConfigureAwait(false);

            CanUpgradePokemon = await Session.Inventory.CanUpgradePokemon(PokemonData).ConfigureAwait(false);

            CanEvolvePokemon = await Session.Inventory.CanEvolvePokemon(PokemonData).ConfigureAwait(false);

            Geolocation = await GeoLocation.FindOrUpdateInDatabase(PokemonData.CapturedCellId).ConfigureAwait(false);
        }
コード例 #2
0
        internal void Update(IEnumerable <PokemonData> pokemons)
        {
            foreach (var item in pokemons)
            {
                var existing = Pokemons.FirstOrDefault(x => x.Id == item.Id);

                if (existing != null)
                {
                    existing.Displayed = Filter.Check(existing);
                    existing.UpdateWith(item);
                }
                else
                {
                    var pokemonDataViewModel = new PokemonDataViewModel(this.Session, item);
                    pokemonDataViewModel.Displayed = Filter.Check(pokemonDataViewModel);

                    Pokemons.Add(pokemonDataViewModel);
                    Task.Run(async() =>
                    {
                        GeoLocation geoLocation = await GeoLocation.FindOrUpdateInDatabase(pokemonDataViewModel.PokemonData.CapturedCellId);
                        if (geoLocation != null)
                        {
                            pokemonDataViewModel.GeoLocation = geoLocation;
                        }
                    });
                }
            }

            // Remove missing pokemon
            List <PokemonDataViewModel> modelsToRemove = new List <PokemonDataViewModel>();

            foreach (var item in Pokemons)
            {
                var existing = pokemons.FirstOrDefault(x => x.Id == item.Id);
                if (existing == null)
                {
                    modelsToRemove.Add(item);
                }
            }

            foreach (var model in modelsToRemove)
            {
                Pokemons.Remove(model);
            }
        }