public IActionResult AddChat([FromBody] ChatMessagesRequest chatRequest) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var chats = new ChatMessages(chatRequest); _context.ChatMessages.Add(chats); _context.Commit(); return(Ok(new { msg = "Chat added" })); }
public async Task Login(string name) { var request = new ChatMessagesRequest() { UserLogin = new UserLogin() { Id = Guid.NewGuid().ToString(), Name = name } }; await call.RequestStream.WriteAsync(request); await AppendLineToChatBox($"You joined the chat."); }
public void SendChatMessage(ChatMessagesRequest data) { List <int> listId = new List <int> (); listId.Add(data.SenderId); listId.Add(data.ReceiverId); List <MUser> listUser = _dbcontext.MUser.Where(x => listId.Contains(x.Id)).ToList(); var sender = listUser.FirstOrDefault(x => x.Id == data.SenderId); var receiver = listUser.FirstOrDefault(x => x.Id == data.ReceiverId); ChatMessages chatMessage = new ChatMessages() { Date = DateTime.UtcNow, ReceiverId = receiver.Id, SenderId = sender.Id, RoomId = data.RoomId, Message = data.Message, IsRead = false, }; _dbcontext.ChatMessages.Add(chatMessage); _dbcontext.Commit(); if (receiver.SocketId == null && sender.PushId != null) { NotificationRequest body = new NotificationRequest() { Body = "New chat message from " + sender.Name, Title = "New chat message", }; NotificationRequestToTopic request = new NotificationRequestToTopic(body, receiver.PushId); request.data.newChat = "True"; string jsonBody = JsonConvert.SerializeObject(request); PushNotificationService.sendPushNotification(jsonBody); } else if (receiver.SocketId != null) { Clients.Client(receiver.SocketId).SendAsync("send:chat", new { msg = "Chat Received", roomId = data.RoomId, chat = data.Message, dateTime = chatMessage.Date }); } }
/// <summary> /// Send our message. /// </summary> private async Task SendMessage() { // If we have tried to send a zero length string we just return if (messageText.Text == string.Empty) { return; } var request = new ChatMessagesRequest() { ChatMessage = new ChatMessage() { Id = userId, Message = messageText.Text } }; outgoingMessages.Add(request, cancellationTokenSource.Token); var responseToMe = new ChatMessagesResponse() { SendFromUserId = userId, SendFromUserName = userName, ChatMessage = request.ChatMessage }; await OutputMessage(responseToMe); /* * var random = new Random(); * while (true) * { * var randomMessage = random.Next(1, 1000); * await SendMessageOverTheWire(randomMessage.ToString()); * await Task.Delay(2); * } */ messageText.Clear(); }