public async Task <IActionResult> CatchProcesser() { string userName = HttpContext.Session.GetString("Username"); if (UserNameErrorCheck(userName)) { return(new RedirectToActionResult("Login", "Account", null)); } string serializedPokemon = HttpContext.Session.GetString("PokemonData"); if (PokemonErrorCheck(serializedPokemon)) { return(new RedirectToActionResult("Walkaround", "Explore", null)); } var pokemonData = JsonConvert.DeserializeObject <PokemonSessionData>(serializedPokemon); var getPokemon = pokemonContext.Pokemons .Where(p => p.Name == pokemonData.Name).FirstOrDefault(); int luckyNumber = random.Next(0, 2); if (luckyNumber == 1) //50% dat de pokemon is gevangen. { pokemonData.Caught = true; /*om cheaten te vermijden*/ string serializedPokemonData = JsonConvert.SerializeObject(pokemonData); HttpContext.Session.SetString("PokemonData", serializedPokemonData); var me = pokemonContext.Users .Where(u => u.Username == userName).FirstOrDefault(); try { var alreadyCaught = pokemonContext.PokemonUsers .Where(pu => pu.UserId == me.Id && pu.PokemonId == getPokemon.Id).FirstOrDefault(); //user heeft resp pokemon al gevangen alreadyCaught.Catches++; } catch (NullReferenceException) {//als de user nog geen pokemon van dit type heeft PokemonUser pokemonUser = new PokemonUser() { PokemonId = getPokemon.Id, UserId = me.Id, Catches = 1 }; pokemonContext.PokemonUsers.Add(pokemonUser); } await pokemonContext.SaveChangesAsync(); return(new RedirectToActionResult("Gotcha", "Explore", null)); } else { pokemonData.CheatingWarning = null; string serializedPokemonData = JsonConvert.SerializeObject(pokemonData); HttpContext.Session.SetString("PokemonData", serializedPokemonData); return(new RedirectToActionResult("TryAgain", "Explore", null)); //om een refresh bij CatchProcesser te voorkomen word je weggestuurd } }
public async Task <IActionResult> Pokemon(short ndex) { Guid userId; Guid?tempUserId = CheckSession(); if (tempUserId == null) { return(new RedirectToActionResult("Login", "Account", null)); } else { userId = (Guid)tempUserId; } UserSimpleDTO user = await GetUserWithId(userId); string uri = $"{baseuri}/Pokemons/GetByNdex/{ndex}"; Pokemon thisPoke = await WebApiHelper.GetApiResult <Pokemon>(uri); uri = $"{baseuri}/PokemonUsers/GetById/{thisPoke.Id}/{user.Id}"; PokemonUser pokemonUser = await WebApiHelper.GetApiResult <PokemonUser>(uri); short numberOfCatches = 0; if (pokemonUser != null) { numberOfCatches = pokemonUser.Catches; } StringBuilder sb = new StringBuilder(); var colors = new string[2]; colors[0] = thisPoke.PokemonTypes.FirstOrDefault().Type.Colour; colors[1] = (thisPoke.PokemonTypes.Count < 2) ? colors[0] : thisPoke.PokemonTypes.ElementAtOrDefault(1).Type.Colour; foreach (var t in thisPoke.PokemonTypes) { sb.Append($"{t.Type.Name} "); } PokedexPokemonVM vm = new PokedexPokemonVM { SelectedPokemon = thisPoke, Catches = numberOfCatches, Colors = colors, Sb = sb, BaseUri = baseuriClient }; return(View(vm)); }
public async Task <IActionResult> CatchProcesser() { Guid userId; Guid?tempUserId = CheckSession(); if (tempUserId == null) { return(new RedirectToActionResult("Login", "Account", null)); } else { userId = (Guid)tempUserId; } UserSimpleDTO user = await GetUserWithId(userId); string serializedPokemon = HttpContext.Session.GetString("PokemonData"); if (PokemonErrorCheck(serializedPokemon)) { return(new RedirectToActionResult("Walkaround", "Explore", null)); } var pokemonData = JsonConvert.DeserializeObject <PokemonSessionData>(serializedPokemon); string uri = $"{baseuri}/Pokemons/GetById/{pokemonData.Id}"; Pokemon template = await WebApiHelper.GetApiResult <Pokemon>(uri); PokemonCatch appearedPokemon = GetPokemonCatchObject(pokemonData.Id, userId, pokemonData.HP, pokemonData.CP, pokemonData.Height, pokemonData.Weight, pokemonData.Gender, pokemonData.IsShiny, pokemonData.IsAlolan, pokemonData.MoveCatches); appearedPokemon.Pokemon = template; appearedPokemon.AppType = "Webbrowser"; int luckyNumber = random.Next(0, 2); if (luckyNumber == 1) //50% dat de pokemon is gevangen. { pokemonData.Caught = true; /*om cheaten te vermijden*/ string serializedPokemonData = JsonConvert.SerializeObject(pokemonData); HttpContext.Session.SetString("PokemonData", serializedPokemonData); uri = $"{baseuri}/PokemonCatches/Add"; //var AddedPokemonId = await WebApiHelper.PostCallAPI<Guid, PokemonCatch>(uri, appearedPokemon); var AddedPokemonId = await WebApiHelperPost.PostAsyncGuid(uri, appearedPokemon); uri = $"{baseuri}/PokemonMoveCatches/Add"; foreach (var el in appearedPokemon.PokemonMoveCatches) { el.PokemonId = AddedPokemonId; //await WebApiHelper.PostCallAPI<PokemonMoveCatch, PokemonMoveCatch>(uri, el); await WebApiHelperPost.PostAsync(uri, el); } uri = $"{baseuri}/PokemonUsers/GetById/{pokemonData.Id}/{userId}"; PokemonUser alreadyCaught = await WebApiHelper.GetApiResult <PokemonUser>(uri);//user heeft resp pokemon al gevangen if (alreadyCaught == null) { PokemonUser pokemonUser = new PokemonUser() { PokemonId = pokemonData.Id, UserId = userId, Catches = 1 }; uri = $"{baseuri}/PokemonUsers/Add"; //await WebApiHelper.PostCallAPI<PokemonUser, PokemonUser>(uri, pokemonUser); await WebApiHelperPost.PostAsync(uri, pokemonUser); } else { uri = $"{baseuri}/PokemonUsers/UpdateAdd"; //await WebApiHelper.PutCallAPI<PokemonUser, PokemonUser>(uri, alreadyCaught); await WebApiHelperPost.PutAsync(uri, alreadyCaught); } return(new RedirectToActionResult("Gotcha", "Explore", null)); } else { pokemonData.CheatingWarning = null; string serializedPokemonData = JsonConvert.SerializeObject(pokemonData); HttpContext.Session.SetString("PokemonData", serializedPokemonData); return(new RedirectToActionResult("TryAgain", "Explore", null)); //om een refresh bij CatchProcesser te voorkomen word je weggestuurd } }