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); } }
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()); } }
public void AddPokemon(Core.Entities.Pokemon pokemon) { _dbContext.Set <Core.Entities.Pokemon>().Add(pokemon); _dbContext.SaveChanges(); }