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> 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)); }