protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); Event.ConfigureForDatabase(builder); Region.ConfigureForDatabase(builder); LocationGroup.ConfigureForDatabase(builder); Location.ConfigureForDatabase(builder); BagCategory.ConfigureForDatabase(builder); Item.ConfigureForDatabase(builder); PlacedItem.ConfigureForDatabase(builder); Currency.ConfigureForDatabase(builder); CurrencyAmount.ConfigureForDatabase(builder); ElementalType.ConfigureForDatabase(builder); ElementalTypeRelation.ConfigureForDatabase(builder); Ability.ConfigureForDatabase(builder); PvpTier.ConfigureForDatabase(builder); PokemonAvailability.ConfigureForDatabase(builder); PokemonVarietyUrl.ConfigureForDatabase(builder); Entities.PokemonSpecies.ConfigureForDatabase(builder); PokemonVariety.ConfigureForDatabase(builder); PokemonForm.ConfigureForDatabase(builder); Evolution.ConfigureForDatabase(builder); MoveDamageClass.ConfigureForDatabase(builder); Move.ConfigureForDatabase(builder); MoveTutor.ConfigureForDatabase(builder); MoveTutorMove.ConfigureForDatabase(builder); MoveTutorMovePrice.ConfigureForDatabase(builder); MoveLearnMethod.ConfigureForDatabase(builder); MoveLearnMethodLocation.ConfigureForDatabase(builder); MoveLearnMethodLocationPrice.ConfigureForDatabase(builder); LearnableMove.ConfigureForDatabase(builder); LearnableMoveLearnMethod.ConfigureForDatabase(builder); TimeOfDay.ConfigureForDatabase(builder); Season.ConfigureForDatabase(builder); SeasonTimeOfDay.ConfigureForDatabase(builder); SpawnType.ConfigureForDatabase(builder); Spawn.ConfigureForDatabase(builder); SpawnOpportunity.ConfigureForDatabase(builder); Nature.ConfigureForDatabase(builder); HuntingConfiguration.ConfigureForDatabase(builder); Build.ConfigureForDatabase(builder); ItemOption.ConfigureForDatabase(builder); MoveOption.ConfigureForDatabase(builder); NatureOption.ConfigureForDatabase(builder); ItemStatBoost.ConfigureForDatabase(builder); Entities.ItemStatBoostPokemon.ConfigureForDatabase(builder); ImportSheet.ConfigureForDatabase(builder); }
private PokemonVariety UpdatePokemonVariety( PokemonVariety dbVariety, PokemonVariety newVariety, string idHash) { var variety = dbVariety ?? newVariety; var pvpTiers = _dbContext.PvpTiers.ToList(); var abilities = _dbContext.Abilities.ToList(); var elementalTypes = _dbContext.ElementalTypes.ToList(); var speciesList = _dbContext.PokemonSpecies .IncludeOptimized(s => s.Varieties) .IncludeOptimized(s => s.DefaultVariety) .ToList(); variety.ResourceName = newVariety.ResourceName; variety.Name = newVariety.Name; variety.PokeApiName = newVariety.PokeApiName; variety.DoInclude = newVariety.DoInclude; variety.IsMega = newVariety.IsMega; variety.IsFullyEvolved = newVariety.IsFullyEvolved; variety.Generation = newVariety.Generation; variety.CatchRate = newVariety.CatchRate; variety.HasGender = newVariety.HasGender; variety.MaleRatio = newVariety.MaleRatio; variety.EggCycles = newVariety.EggCycles; variety.Height = newVariety.Height; variety.Weight = newVariety.Weight; variety.ExpYield = newVariety.ExpYield; variety.Attack = newVariety.Attack; variety.Defense = newVariety.Defense; variety.SpecialAttack = newVariety.SpecialAttack; variety.SpecialDefense = newVariety.SpecialDefense; variety.Speed = newVariety.Speed; variety.HitPoints = newVariety.HitPoints; variety.AttackEv = newVariety.AttackEv; variety.DefenseEv = newVariety.DefenseEv; variety.SpecialAttackEv = newVariety.SpecialAttackEv; variety.SpecialDefenseEv = newVariety.SpecialDefenseEv; variety.SpeedEv = newVariety.SpeedEv; variety.HitPointsEv = newVariety.HitPointsEv; variety.Notes = newVariety.Notes; var primaryType = elementalTypes.SingleOrDefault(e => e.Name.EqualsExact(newVariety.PrimaryType.Name)); if (primaryType is null) { _reporter.ReportError(Entity.PokemonForm, idHash, $"Could not find primary type {newVariety.PrimaryType.Name} for PokemonVariety {newVariety.Name}, skipping."); return(null); } ElementalType secondaryType = null; if (newVariety.SecondaryType != null) { secondaryType = elementalTypes.SingleOrDefault(e => e.Name.EqualsExact(newVariety.SecondaryType.Name)); if (secondaryType is null) { _reporter.ReportError(Entity.PokemonForm, idHash, $"Could not find secondary type {newVariety.SecondaryType.Name} for PokemonVariety {newVariety.Name}, setting null."); } } var primaryAbility = abilities.SingleOrDefault(a => a.Name.EqualsExact(newVariety.PrimaryAbility.Name)); if (primaryAbility is null) { _reporter.ReportError(Entity.PokemonForm, idHash, $"Could not find primary ability {newVariety.PrimaryAbility.Name} for PokemonVariety {newVariety.Name}, skipping."); return(null); } Ability secondaryAbility = null; if (newVariety.SecondaryAbility != null) { secondaryAbility = abilities.SingleOrDefault(a => a.Name.EqualsExact(newVariety.SecondaryAbility.Name)); if (secondaryAbility is null) { _reporter.ReportError(Entity.PokemonForm, idHash, $"Could not find secondary ability {newVariety.SecondaryAbility.Name} for PokemonVariety {newVariety.Name}, setting null."); } } Ability hiddenAbility = null; if (newVariety.HiddenAbility != null) { hiddenAbility = abilities.SingleOrDefault(a => a.Name.EqualsExact(newVariety.HiddenAbility.Name)); if (hiddenAbility is null) { _reporter.ReportError(Entity.PokemonForm, idHash, $"Could not find hidden ability {newVariety.HiddenAbility.Name} for PokemonVariety {newVariety.Name}, setting null."); } } var pvpTier = pvpTiers.SingleOrDefault(p => p.Name.EqualsExact(newVariety.PvpTier.Name)); if (pvpTier is null) { _reporter.ReportError(Entity.PokemonForm, idHash, $"Could not find pvp tier {newVariety.PvpTier.Name} for PokemonVariety {newVariety.Name}, skipping."); return(null); } variety.PrimaryTypeId = primaryType.Id; variety.PrimaryType = primaryType; variety.SecondaryTypeId = secondaryType?.Id; variety.SecondaryType = secondaryType; variety.PrimaryAbilityId = primaryAbility.Id; variety.PrimaryAbility = primaryAbility; variety.SecondaryAbilityId = secondaryAbility?.Id; variety.SecondaryAbility = secondaryAbility; variety.HiddenAbilityId = hiddenAbility?.Id; variety.HiddenAbility = hiddenAbility; variety.PvpTierId = pvpTier.Id; variety.PvpTier = pvpTier; var dbSpecies = speciesList.SingleOrDefault(s => s.Name.EqualsExact(newVariety.PokemonSpecies.Name)); var species = dbSpecies ?? variety.PokemonSpecies; species.PokedexNumber = variety.PokemonSpecies.PokedexNumber; species.Name = variety.PokemonSpecies.Name; species.PokeApiName = variety.PokemonSpecies.PokeApiName; variety.PokemonSpeciesId = species.Id; variety.PokemonSpecies = species; return(variety); }