コード例 #1
0
        public async Task AddWeakness()
        {
            var pokesSerialized = _pokemonRepository.GetPokemonsSerialized();
            var types           = _typeElementRepository.GetTypes();
            var pokemons        = _pokemonRepository.GetPokemons();

            foreach (var poke in pokemons)
            {
                var pokeSerialized = pokesSerialized
                                     .Where(p => p.Number == poke.Number)
                                     .SingleOrDefault();

                if (pokeSerialized.Weaknesses != null && pokeSerialized.Weaknesses.Count > 0)
                {
                    foreach (var weakness in pokeSerialized.Weaknesses)
                    {
                        var newWeakness = types
                                          .Where(t => t.Type == weakness)
                                          .SingleOrDefault();

                        var pokeWeaknesses = new PokemonWeakness(poke.Id, newWeakness.Id);
                        var newPokemon     = context.Set <Pokemon>()
                                             .Include(w => w.Weaknesses)
                                             .Where(p => p.Id == poke.Id)
                                             .SingleOrDefault();

                        if (!newPokemon.Weaknesses.Where(t => t.TypeElementId == pokeWeaknesses.TypeElementId).Any())
                        {
                            newPokemon.Weaknesses.Add(pokeWeaknesses);
                            context.SaveChanges();
                        }
                    }
                }
            }

            await context.SaveChangesAsync();
        }
コード例 #2
0
        public async Task AddTypeElements()
        {
            var pokesSerialized = _pokemonRepository.GetPokemonsSerialized();
            var types           = _typeElementRepository.GetTypes();
            var pokemons        = _pokemonRepository.GetPokemons();

            foreach (var poke in pokemons)
            {
                var pokeSerialized = pokesSerialized
                                     .Where(p => p.Number == poke.Number)
                                     .SingleOrDefault();

                if (pokeSerialized.Type != null && pokeSerialized.Type.Count > 0)
                {
                    foreach (var type in pokeSerialized.Type)
                    {
                        var newType = types
                                      .Where(t => t.Type == type)
                                      .SingleOrDefault();

                        var pokeTypeElement = new PokemonTypeElement(poke.Id, newType.Id);
                        var newPokemon      = context.Set <Pokemon>()
                                              .Include(t => t.Type)
                                              .Where(p => p.Id == poke.Id)
                                              .SingleOrDefault();

                        if (!newPokemon.Type.Where(t => t.TypeElementId == pokeTypeElement.TypeElementId).Any())
                        {
                            newPokemon.Type.Add(pokeTypeElement);
                            context.SaveChanges();
                        }
                    }
                }
            }

            await context.SaveChangesAsync();
        }