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);
        }
Ejemplo n.º 3
0
 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);
        }
Ejemplo n.º 5
0
        //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);
            }
        }
Ejemplo n.º 6
0
        // 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);
        }
Ejemplo n.º 7
0
        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();
            }
        }
Ejemplo n.º 8
0
        // 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;
 }
Ejemplo n.º 11
0
 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;
 }
Ejemplo n.º 13
0
 public CatchController(PokeContext context)
 {
     _context = context;
 }
Ejemplo n.º 14
0
 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);
     }
 }
Ejemplo n.º 15
0
 public PokemonController(PokeContext context)
 {
     this.context = context;
 }
Ejemplo n.º 16
0
 public TrainersController(PokeContext context)
 {
     _context = context;
 }
Ejemplo n.º 17
0
        /*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();
                }
            }
        }
Ejemplo n.º 18
0
 public BaseService(PokeContext pokeContext, ILogger logger)
 {
     _context = pokeContext;
     _logger  = logger;
 }
Ejemplo n.º 19
0
 public PokemonNameService(PokeContext pokeContext, ILogger logger) : base(pokeContext, logger)
 {
 }
Ejemplo n.º 20
0
 public TeamController(PokeContext context)
 {
     this.context = context;
 }
Ejemplo n.º 21
0
 public PokemonController(PokeContext context)
 {
     _context = context;
 }
Ejemplo n.º 22
0
 public PokemonRepository(PokeContext ctx, IMapper mapper)
 {
     _context = ctx;
     _mapper  = mapper;
     _dbSet   = ctx.Pokemons;
 }
 public BaseStatService(PokeContext pokeContext, ILogger logger) : base(pokeContext, logger)
 {
 }