public async Task <IActionResult> SendFirstMessage(ChatSendFirstMessageVm vm) { var serializedReceiver = HttpContext.Session.GetString("ReceiverData"); User chatReceiver = JsonConvert.DeserializeObject <User>(serializedReceiver); if (ModelState.IsValid) { string userName = HttpContext.Session.GetString("Username"); User user = await pokemonContext.Users .Where(u => u.Username == userName) .FirstOrDefaultAsync(); var chatName = userName + ", " + chatReceiver.Username; Chat chat = new Chat { Name = chatName, CreatorId = user.Id, CreateDate = DateTime.Now, LastMessage = vm.Text, NumberOfUsers = 2, NumberOfMessages = 2 }; pokemonContext.Chats.Add(chat); var id = chat.Id; UserChat userChat = new UserChat { Chat = chat, User = user }; pokemonContext.UserChats.Add(userChat); UserChat userChat2 = new UserChat { Chat = chat, UserId = chatReceiver.Id }; pokemonContext.UserChats.Add(userChat2); Message message = new Message { ChatId = id, Sender = user, Text = vm.Text, SendDate = DateTime.Now }; pokemonContext.Messages.Add(message); await pokemonContext.SaveChangesAsync(); HttpContext.Session.SetString("ChatId", id.ToString()); return(new RedirectToActionResult("ChatWithName", "Chat", id)); } vm.Receiver = chatReceiver; return(View(vm)); }
public IActionResult SendFirstMessage() { var serializedReceiver = HttpContext.Session.GetString("ReceiverData"); User ChatReceiver = JsonConvert.DeserializeObject <User>(serializedReceiver); ChatSendFirstMessageVm vm = new ChatSendFirstMessageVm() { Receiver = ChatReceiver }; return(View(vm)); }