Exemple #1
0
        public async Task <IActionResult> Index()
        {
            string userName = HttpContext.Session.GetString("Username");

            if (userName == null)
            {
                return(new RedirectToActionResult("Login", "Account", null));
            }
            var vm = new HomeIndexVm
            {
                Username = userName
            };

            var allPokemonWithTypes = await pokemonContext.Set <PokemonType>()
                                      .Include(pt => pt.Pokemon)   //join
                                      .ThenInclude(p => p.PokemonTypes)
                                      .Include(pt => pt.Type)      //join
                                      .ThenInclude(t => t.PokemonTypes)
                                      .ToListAsync();

            vm.AllPokemonWithTypeInfo = allPokemonWithTypes.Select(pt => pt.Pokemon);
            vm.AllCaughtPokemon       = await getAllCaught(userName);

            return(View(vm));
        }
        private async Task <MyPokemon> LetPokemonAppear(Type type)
        {
            var givePokemonType = await pokemonContext.Set <PokemonType>()//een join van Pokemon, PokemonType en Type
                                  .Include(pt => pt.Pokemon)
                                  .ThenInclude(p => p.PokemonTypes)
                                  .Where(p => p.Type.Name.ToLower() == type.Name.ToLower())
                                  .Include(pt => pt.Type)
                                  .ThenInclude(t => t.PokemonTypes)
                                  .ToListAsync();

            int max = givePokemonType.Count();

            if (max != 0)
            {
                int listItem        = random.Next(0, max);
                var appearedPokemon = givePokemonType[listItem]; //geeft een Pokemon met type. Moet omgezet worden naar een Pokemon
                                                                 //HttpContext.Session.SetString("AppearedPokemon", appearedPokemon.Pokemon.Name);
                string serializedPokemon = HttpContext.Session.GetString("PokemonData");
                var    pokemonData       = JsonConvert.DeserializeObject <PokemonSessionData>(serializedPokemon);
                pokemonData.Name  = appearedPokemon.Pokemon.Name;
                pokemonData.Id    = appearedPokemon.Pokemon.Id;
                pokemonData.HP    = 50; //dit wordt random bepaald
                pokemonData.Moves = new List <string> {
                    "Bite", "Shadowball"
                };                                                            //dit wordt bepaald per type
                string serializedPokemonData = JsonConvert.SerializeObject(pokemonData);
                HttpContext.Session.SetString("PokemonData", serializedPokemonData);

                return(appearedPokemon.Pokemon);
            }
            else
            {
                return(null);
            }
        }
Exemple #3
0
        public async Task <IViewComponentResult> InvokeAsync()
        {
            string userName = HttpContext.Session.GetString("Username");

            if (userName != null)
            {
                var currentUser = _pokemonContext.Users
                                  .Where(u => u.Username == userName).FirstOrDefault();

                var numberOfPokemon = await _pokemonContext.Set <PokemonUser>()
                                      .Include(pu => pu.Pokemon).ThenInclude(p => p.PokemonUsers)
                                      .Include(pu => pu.User).ThenInclude(u => u.PokemonUsers)
                                      .Where(u => u.UserId == currentUser.Id)
                                      .CountAsync();

                var vm = new PokebagVm();
                if (numberOfPokemon != 0)//als deze check niet gedaan wordt komt er een error wanneer je bag leeg is.
                {
                    vm.MostCaught = await _pokemonContext.Set <PokemonUser>()
                                    .Include(pu => pu.Pokemon).ThenInclude(p => p.PokemonUsers)
                                    .Include(pu => pu.User).ThenInclude(u => u.PokemonUsers)
                                    .Where(u => u.UserId == currentUser.Id)
                                    .OrderByDescending(pu => pu.Catches)
                                    .Take(3).ToListAsync();

                    vm.PokemonData = new Dictionary <string, short>();

                    foreach (var mc in vm.MostCaught)
                    {
                        vm.PokemonData.Add(mc.Pokemon.Name, mc.Catches);
                    }
                }
                else
                {
                    vm.MostCaught = new List <PokemonUser>();
                }
                return(View(vm));
            }
            else
            {
                return(View());
            }
        }
Exemple #4
0
 public void AddPokemon(Core.Entities.Pokemon pokemon)
 {
     _dbContext.Set <Core.Entities.Pokemon>().Add(pokemon);
     _dbContext.SaveChanges();
 }