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