public async Task <IActionResult> Index() { Guid userId; Guid?tempUserId = CheckSession(); if (tempUserId == null) { return(new RedirectToActionResult("Login", "Account", null)); } else { userId = (Guid)tempUserId; } string uri = $"{baseuri}/chats/userId/{userId}"; List <Chat> chatListForUser = await WebApiHelper.GetApiResult <List <Chat> >(uri); UserSimpleDTO currentUser = await GetUserWithId(userId); var allUsers = await FilterUserList(userId); ChatIndexVM vm = new ChatIndexVM { User = currentUser, AllUsers = new SelectList(allUsers, "Id", "UserName") }; //HttpContext.Session.SetString("chatId", "9bc5f401-9684-48a9-2ffe-08d6bd9fc1a1"); //return new RedirectToActionResult("OpenExistingChat", "Chat", null); return(View(vm)); }
public async Task <IActionResult> Index() { Guid userId; Guid?tempUserId = CheckSession(); if (tempUserId == null) { return(new RedirectToActionResult("Login", "Account", null)); } else { userId = (Guid)tempUserId; } UserSimpleDTO user = await GetUserWithId(userId); var vm = new PokedexIndexVM { Username = user.UserName, BaseUri = baseuriClient }; string uri = $"{baseuri}/Pokemons/GetAll"; List <Pokemon> allPokemon = await WebApiHelper.GetApiResult <List <Pokemon> >(uri); vm.AllPokemonWithTypeInfo = allPokemon; uri = $"{baseuri}/PokemonCatches/GetMyPokemon/{user.Id}"; List <PokemonCatch> allCaughtPokemon = await WebApiHelper.GetApiResult <List <PokemonCatch> >(uri); vm.AllCaughtPokemon = allCaughtPokemon; return(View(vm)); }
public async Task <IActionResult> SendFirstMessage() { Guid senderId; Guid?tempUserId = CheckSession(); if (tempUserId == null) { return(new RedirectToActionResult("Login", "Account", null)); } else { senderId = (Guid)tempUserId; } UserSimpleDTO sender = await GetUserWithId(senderId); Guid receiverId = Guid.Parse(HttpContext.Session.GetString("ReceiverId")); UserSimpleDTO receiver = await GetUserWithId(receiverId); ChatSendFirstMessageVM vm = new ChatSendFirstMessageVM() { Receiver = receiver, Sender = sender }; return(View(vm)); }
public async Task <IActionResult> GeneratePokemon() { PokemonCatch appearedPokemon; Pokemon template; PokemonSessionData pokemonData; string serializedPokemon; Guid userId; Guid?tempUserId = CheckSession(); if (tempUserId == null) { return(new RedirectToActionResult("Login", "Account", null)); } else { userId = (Guid)tempUserId; } UserSimpleDTO user = await GetUserWithId(userId); serializedPokemon = HttpContext.Session.GetString("PokemonData"); if (PokemonErrorCheck(serializedPokemon)) { return(new RedirectToActionResult("Walkaround", "Explore", null)); } pokemonData = JsonConvert.DeserializeObject <PokemonSessionData>(serializedPokemon); string uri = $"{baseuri}/Types/TypeName/{pokemonData.Type}"; var getType = await WebApiHelper.GetApiResult <Type>(uri); if (pokemonData.Name == null)//er is nog geen pokemon gegenereerd. Is dit wel zo zal de bovenstaande terug getoond worden { appearedPokemon = await LetPokemonAppear(getType, user.Id); } else { appearedPokemon = GetPokemonCatchObject(pokemonData.Id, userId, pokemonData.HP, pokemonData.CP, pokemonData.Height, pokemonData.Weight, pokemonData.Gender, pokemonData.IsShiny, pokemonData.IsAlolan, pokemonData.MoveCatches); } uri = $"{baseuri}/Pokemons/GetById/{appearedPokemon.PokemonId}"; template = await WebApiHelper.GetApiResult <Pokemon>(uri); appearedPokemon.Pokemon = template; ExploreCatchVm vm = new ExploreCatchVm(); vm.AppearedPokemon = appearedPokemon; vm.CheatingWarning = pokemonData.CheatingWarning; vm.UserName = user.UserName; vm.BaseUri = baseuriClient; vm.FolderType = GeneralFunctions.EvaluateFolderType(appearedPokemon.IsShiny, appearedPokemon.IsAlolan);//FolderType is ook property van PokemonCatch return(View(vm)); }
public List <UserSimpleDTO> GetRemainingUsersSimple(Guid chatId) { var allUsers = PokebookContext.Users.ProjectTo <UserSimpleDTO>(mapper.ConfigurationProvider).ToList(); var userList = GetChatUsers(chatId); foreach (var user in userList) { UserSimpleDTO toRemove = allUsers.Where(a => a.UserName == user.UserName).FirstOrDefault(); allUsers.Remove(toRemove); } return(allUsers); }
public async Task <List <UserSimpleDTO> > GetChatUsersSimple(Guid chatId) { var userList = new List <UserSimpleDTO>(); var allUserChats = PokebookContext.UserChats.Include(uc => uc.User).Where(uc => uc.ChatId == chatId).ToList(); foreach (var uc in allUserChats) { UserSimpleDTO userToAddDTO = await GetUserSimple(uc.User.Id); userList.Add(userToAddDTO); } return(userList); }
public async Task <IActionResult> Gotcha() { 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); if (!pokemonData.Caught) {/*de bool is niet op true gezet in CatchProcesser. De user heeft dus gecheat*/ pokemonData.CheatingWarning = "Professor Oak can't allow cheating!"; string serializedPokemonData = JsonConvert.SerializeObject(pokemonData); HttpContext.Session.SetString("PokemonData", serializedPokemonData); return(new RedirectToActionResult("GeneratePokemon", "Explore", null)); } 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; ExploreCatchVm vm = new ExploreCatchVm(); vm.AppearedPokemon = appearedPokemon; vm.UserName = user.UserName; vm.BaseUri = baseuriClient; vm.FolderType = GeneralFunctions.EvaluateFolderType(appearedPokemon.IsShiny, appearedPokemon.IsAlolan); HttpContext.Session.Remove("PokemonData"); //om minder geheugen in te nemen op de server. //Ook om een Redirect te forceren bij terugkeer naar de vorige pagina return(View(vm)); }
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> OpenExistingChat(Guid chatId)//is 000... na Redirect om de een of andere reden { Guid myId; Guid?tempUserId = CheckSession(); if (tempUserId == null) { return(new RedirectToActionResult("Login", "Account", null)); } else { myId = (Guid)tempUserId; } if (chatId.ToString() == "00000000-0000-0000-0000-000000000000") { chatId = Guid.Parse(HttpContext.Session.GetString("ChatId")); } //string uri = $"{baseuri}/chats/{chatId}"; string uri = $"{baseuri}/chats/GetChatSafe/{chatId}/{myId}";//extra controle als je wel lid bent van deze chat Chat currentChat = await WebApiHelper.GetApiResult <Chat>(uri); if (currentChat != null) { uri = $"{baseuri}/messages/range/{chatId}/{0}/{20}";//--> enkel de 20 recentste berichten worden getoond List <Message> messagesFromChat = await WebApiHelper.GetApiResult <List <Message> >(uri); currentChat.Messages = messagesFromChat;//de messages moeten apart opgehaald worden door de [JsonIgnore] in Chat class UserSimpleDTO currentUser = await GetUserWithId(myId); OpenExistingChatVM vm = new OpenExistingChatVM { Chat = currentChat, Me = currentUser, Id = myId }; return(View(vm)); } return(new RedirectToActionResult("Index", "Home", null)); }
public async Task <IActionResult> TryAgain() { 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; ExploreCatchVm vm = new ExploreCatchVm(); vm.AppearedPokemon = appearedPokemon; vm.UserName = user.UserName; vm.BaseUri = baseuriClient; vm.FolderType = GeneralFunctions.EvaluateFolderType(appearedPokemon.IsShiny, appearedPokemon.IsAlolan); return(View(vm)); }
public async Task <IActionResult> SendFirstMessage(ChatSendFirstMessageVM vm) { Guid senderId; Guid?tempUserId = CheckSession(); if (tempUserId == null) { return(new RedirectToActionResult("Login", "Account", null)); } else { senderId = (Guid)tempUserId; } UserSimpleDTO sender = await GetUserWithId(senderId); Guid receiverId = Guid.Parse(HttpContext.Session.GetString("ReceiverId")); UserSimpleDTO receiver = await GetUserWithId(receiverId); if (ModelState.IsValid) { Chat chat = new Chat { Name = $"{sender.UserName}, {receiver.UserName}", CreatorId = senderId, CreateDate = DateTime.Now, LastMessage = vm.Text, NumberOfUsers = 2, //minimum NumberOfMessages = 1 //bij het maken van de chat is er steeds 1 message aan gekoppeld }; string uri = $"{baseuri}/chats"; Chat createdChat = await WebApiHelper.PostCallAPI <Chat, Chat>(uri, chat); Message message = new Message { Text = createdChat.LastMessage, //Chat = createdChat,--> Navigation properties geven een error bij post request ChatId = createdChat.Id, SenderId = createdChat.CreatorId, SendDate = DateTime.Now }; uri = $"{baseuri}/messages"; Message createdMessage = await WebApiHelper.PostCallAPI <Message, Message>(uri, message); UserChat senderData = new UserChat { ChatId = createdChat.Id, UserId = createdChat.CreatorId }; uri = $"{baseuri}/userchats"; UserChat uc1 = await WebApiHelper.PostCallAPI <UserChat, UserChat>(uri, senderData); UserChat receiverData = new UserChat { ChatId = createdChat.Id, UserId = receiverId }; UserChat uc2 = await WebApiHelper.PostCallAPI <UserChat, UserChat>(uri, receiverData); HttpContext.Session.SetString("ChatId", createdChat.Id.ToString()); return(new RedirectToActionResult("OpenExistingChat", "Chat", createdChat.Id)); } vm.Receiver = receiver; 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 } }