public async Task <IActionResult> ChatWithName(Guid chatId)//is 000... na Redirect om de een of andere reden { string chatIdFromSession; if (chatId.ToString() == "00000000-0000-0000-0000-000000000000") { chatIdFromSession = HttpContext.Session.GetString("ChatId"); if (chatIdFromSession != null) { chatId = new Guid(chatIdFromSession); } } HttpContext.Session.Remove("ChatId"); string userName = HttpContext.Session.GetString("Username"); var currentChat = await pokemonContext.Chats .Include(c => c.Messages).ThenInclude(m => m.Sender) .Include(c => c.UserChats) .Where(c => c.Id == chatId).FirstOrDefaultAsync(); ChatWithNameVm vm = new ChatWithNameVm { Chat = currentChat, Username = userName }; return(View(vm)); }
public async Task <IActionResult> ChatWithName(ChatWithNameVm userdata) { if (ModelState.IsValid) { string userName = HttpContext.Session.GetString("Username"); var me = await pokemonContext.Users .Where(u => u.Username == userName).FirstOrDefaultAsync(); Message message = new Message { ChatId = userdata.Chat.Id, Sender = me, Text = userdata.Text, SendDate = DateTime.Now }; pokemonContext.Messages.Add(message); await pokemonContext.SaveChangesAsync(); return(new RedirectToActionResult("ChatWithName", "Chat", userdata.Chat.Id)); } return(View(userdata)); }