public static ICollection <PokemonSpecimen> UpdatePlayerCapturedPokemonList(IWebDriver driver) { List <PokemonSpecimen> PlayerCapturedPokemonList = new List <PokemonSpecimen>(); using (var db = new PokeContext()) { driver.Navigate().GoToUrl(PokemonTeamPage); var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(240)); var loadWaiter = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.XPath(PokemonListXpath))); var capturedPokemonElements = driver.FindElements(By.XPath(PokemonBlockXpath)); foreach (var capturedPokemonElement in capturedPokemonElements) { var pokemonName = capturedPokemonElement.FindElement(By.ClassName("name")).Text.Trim(); var pokemonLevelAndHPelement = capturedPokemonElement.FindElement(By.ClassName("smallVerdana")); var pokemon = db.Pokemons.FirstOrDefault(x => x.Name == pokemonName); if (pokemon != null) { PlayerCapturedPokemonList.Add(new PokemonSpecimen() { Pokemon = pokemon, Level = GetCapturedPokemonLevel(pokemonLevelAndHPelement), CurrentHP = GetCapturedPokemonCurrentHP(pokemonLevelAndHPelement), MaxHP = GetCapturedPokemonMaxHP(pokemonLevelAndHPelement) }); } } } return(PlayerCapturedPokemonList); }
public async Task Demo_Seeding_Database() { var pokeJson = File.ReadAllText("./TestData/pokedex.json"); var pokeDeserialized = JsonSerializer.Deserialize <List <Data.Entities.Pokemon> >(pokeJson); var pokeNames = pokeDeserialized.Select(x => { x.Name.PokemonId = x.Id; return(x.Name); }).ToList(); var pokeStats = pokeDeserialized.Select(x => { x.BaseStat.PokemonId = x.Id; return(x.BaseStat); }).ToList(); await PokeContext.BulkInsertAsync <Data.Entities.Pokemon>(pokeDeserialized); await PokeContext.BulkInsertAsync <Data.Entities.PokemonName>(pokeNames); await PokeContext.BulkInsertAsync <Data.Entities.BaseStat>(pokeStats); var totalPokemonInDatabase = await PokeContext.Pokemon.LongCountAsync(); Assert.AreEqual(pokeDeserialized.Count, totalPokemonInDatabase); }
public static Pokemon AddPokemon(Pokemon pokemon) { using (var db = new PokeContext()) { if (db.Pokemons.FirstOrDefault(x => x.Name == pokemon.Name) == null) { pokemon = db.Pokemons.Add(pokemon).Entity; db.SaveChanges(); } return(pokemon); } }
public void Init() { var builder = new DbContextOptionsBuilder <PokeContext>() .UseSqlServer("Server=localhost;Initial Catalog=TestMcTesty;MultipleActiveResultSets=true;User ID=SA;Password=Test123!;"); PokeContext = new PokeContext(builder.Options); PokeContext.Database.EnsureCreated(); MockedLogger = new Mock <ILogger>(); Services = new PokedexServices(PokeContext, MockedLogger.Object); }
//public static Pokemon SearchPokemonByName(string pokemonName) //{ // var pokemonList = DatabaseLoaderActions.LoadAllPokemonFromJSON(); // return pokemonList.FirstOrDefault(x => x.Name == pokemonName); //} public static Move AddMove(Move move) { using (var db = new PokeContext()) { if (db.Moves.FirstOrDefault(x => x.Name == move.Name) == null) { move = db.Moves.Add(move).Entity; db.SaveChanges(); } return(move); } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, PokeContext pokeContext) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseAuthentication(); app.UseMvc(); app.UseCors("CorsPolicy"); DbInitializer.Initialize(pokeContext); }
static void Main(string[] args) { using (IWebDriver driver = new ChromeDriver()) { LogInActions.Login(driver); driver.Navigate().GoToUrl("https://www.unovarpg.com/pokemon_locator.php"); Pokemon Solgaleo = new Pokemon(); using (var db = new PokeContext()) { Solgaleo = db.Pokemons.FirstOrDefault(x => x.Name == "Electabuzz"); } NavigationActions.FindPokemon(driver, new Uri("https://www.unovarpg.com/map.php?map=6"), Solgaleo, Enums.SpecialType.Shiny, true); Console.ReadLine(); } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, PokeContext pokeContext) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseCors(options => options.WithOrigins("http://localhost:4200") .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials() // .WithMethods("GET", "POST") // .WithHeaders("Access-Control-Allow-Methods", "POST") ); app.UseMvc(); DbInitializer.Initialize(pokeContext); }
public async Task Verify_Update_Correctly(Data.Entities.Pokemon newEntity) { var result = await Services.PokemonService.UpSert(newEntity); // detach the entity so it does not get updated during second service call PokeContext.Entry(result).State = EntityState.Detached; var dbEntity = await PokeContext.Pokemon .AsNoTracking() .Include(x => x.Name) .Where(x => x.Id == result.Id) .SingleOrDefaultAsync(); Assert.NotNull(dbEntity); dbEntity.Name.English = "Charmander"; var updatedResult = await Services.PokemonService.UpSert(dbEntity); Assert.AreEqual(result.Id, updatedResult.Id); Assert.AreNotEqual(result.Name.English, updatedResult.Name.English); }
public PokedexServices(PokeContext pokeContext, ILogger logger) { _pokeContext = pokeContext ?? throw new ArgumentNullException(nameof(pokeContext)); _logger = logger; }
private static void InjectPokemonElementTypes(Pokemon pokemon, IList <IWebElement> elements, PokeContext db) { foreach (var element in elements) { var src = element.GetProperty("src"); var number = int.Parse(src.Substring(src.LastIndexOf("/") + 1).Replace(".gif", "")); var elementTypeEnum = Tuples.TypeURL.TypeParser.FirstOrDefault(x => x.Item1 == number).Item2; var ElementType = db.ElementTypes.FirstOrDefault(x => x.Name == Helpers.EnumHelper.GetDescriptionFromEnumValue(elementTypeEnum)); if (ElementType == null) { ElementType = new ElementType() { Name = Helpers.EnumHelper.GetDescriptionFromEnumValue(elementTypeEnum) }; } var pokemonElementType = new PokemonElementType() { ElementType = ElementType }; pokemon.ElementTypes.Add(pokemonElementType); } }
public TrainerController(PokeContext context) { this.context = context; }
public CatchController(PokeContext context) { _context = context; }
private static void InjectPokemonMovesByLevel(Pokemon pokemon, IList <IWebElement> movesByLevelElements, PokeContext db) { foreach (var item in movesByLevelElements) { var level = int.Parse(item.FindElement(By.TagName("th")).Text.Trim()); var moveName = item.FindElement(By.TagName("td")).Text.Trim(); var move = db.Moves.FirstOrDefault(x => x.Name == moveName); if (move == null) { move = new Move() { Name = moveName }; } PokemonMoveByLevel moveByLevel = new PokemonMoveByLevel() { PokemonMove = new PokemonMove() { Pokemon = pokemon, Move = move }, Level = level }; pokemon.MovesByLevel.Add(moveByLevel); } }
public PokemonController(PokeContext context) { this.context = context; }
public TrainersController(PokeContext context) { _context = context; }
/*Main methods*/ #region Main methods public static void UpdatePokedex(IWebDriver driver) { driver.Navigate().GoToUrl(StartingPokedexIndex); var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(240)); var loadWaiter = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.XPath(NextPokemonElementXpath))); int MaximumPokemonIdAvailable = driver.FindElements(By.XPath(PokemonListDropDownOptionsXpath)).Count - 1; for (int i = 0; i < MaximumPokemonIdAvailable; i++) { loadWaiter = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.XPath(PokemonNameIDXpath))); IWebElement nameIDElement = driver.FindElement(By.XPath(PokemonNameIDXpath)); loadWaiter = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.XPath(NextPokemonElementXpath))); IWebElement nextPokemon = driver.FindElement(By.XPath(NextPokemonElementXpath)); var pokemonID = GetPokemonID(nameIDElement); var pokemonName = GetPokemonName(nameIDElement); using (var db = new PokeContext()) { if (db.Pokemons.FirstOrDefault(x => x.Name == pokemonName) != null) { nextPokemon.Click(); Console.WriteLine($"Pokémon already in database ({pokemonName}). Skipping..."); continue; } } loadWaiter = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.XPath(PokemonTypesXpath))); IList <IWebElement> typesElement = driver.FindElements(By.XPath(PokemonTypesXpath)); loadWaiter = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.XPath(PokemonBaseStatsTableElementsXpath))); IList <IWebElement> baseStatsElements = driver.FindElements(By.XPath(PokemonBaseStatsTableElementsXpath)); loadWaiter = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.XPath(PokemonMaxStatsTableElementsXpath))); IList <IWebElement> maxStatsElements = driver.FindElements(By.XPath(PokemonMaxStatsTableElementsXpath)); loadWaiter = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.XPath(PokemonMovesByLevelElementsXpath))); IList <IWebElement> movesByLevelElements = driver.FindElements(By.XPath(PokemonMovesByLevelElementsXpath)); //loadWaiter = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.XPath(PokemonAvailableTMsElementsXpath))); //IList<IWebElement> availableTMsElements = driver.FindElements(By.XPath(PokemonAvailableTMsElementsXpath)); Pokemon pokemon = new Pokemon() { Name = pokemonName }; using (var db = new PokeContext()) { InjectPokemonHP(pokemon, StatType.Base, baseStatsElements); InjectPokemonATK(pokemon, StatType.Base, baseStatsElements); InjectPokemonDEF(pokemon, StatType.Base, baseStatsElements); InjectPokemonSPATK(pokemon, StatType.Base, baseStatsElements); InjectPokemonSPDEF(pokemon, StatType.Base, baseStatsElements); InjectPokemonSPD(pokemon, StatType.Base, baseStatsElements); InjectPokemonHP(pokemon, StatType.Max, maxStatsElements); InjectPokemonATK(pokemon, StatType.Max, maxStatsElements); InjectPokemonDEF(pokemon, StatType.Max, maxStatsElements); InjectPokemonSPATK(pokemon, StatType.Max, maxStatsElements); InjectPokemonSPDEF(pokemon, StatType.Max, maxStatsElements); InjectPokemonSPD(pokemon, StatType.Max, maxStatsElements); InjectPokemonElementTypes(pokemon, typesElement, db); InjectPokemonMovesByLevel(pokemon, movesByLevelElements, db); if (db.Pokemons.FirstOrDefault(x => x.Name == pokemon.Name) == null) { pokemon = db.Pokemons.Add(pokemon).Entity; db.SaveChanges(); } Console.WriteLine($"New Pokémon added to database:#{pokemon.ID}-{pokemon.Name}"); nextPokemon.Click(); } } }
public BaseService(PokeContext pokeContext, ILogger logger) { _context = pokeContext; _logger = logger; }
public PokemonNameService(PokeContext pokeContext, ILogger logger) : base(pokeContext, logger) { }
public TeamController(PokeContext context) { this.context = context; }
public PokemonController(PokeContext context) { _context = context; }
public PokemonRepository(PokeContext ctx, IMapper mapper) { _context = ctx; _mapper = mapper; _dbSet = ctx.Pokemons; }
public BaseStatService(PokeContext pokeContext, ILogger logger) : base(pokeContext, logger) { }