public async System.Threading.Tasks.Task Send(int chatRoomId, string message, int senderId, string to) { var userName = Context.User.Identity.Name; Message msg = new Message() { Content = message }; foreach (var ch in msg.Content) { if (char.IsWhiteSpace(ch)) { continue; } await _messageService.AddMessageToRoomAsync(chatRoomId, msg, senderId); if (Context.UserIdentifier != to) { await Clients.User(Context.UserIdentifier).SendAsync("Receive", message, userName); } await Clients.User(to).SendAsync("Receive", message, userName); } }
public async System.Threading.Tasks.Task CreateChatRoomAfterFirstMessageAsync([FromBody] CreateChatRoomAndSendFirstMessageDTO cht) { ChatRoom chatRoom = (await chatRoomRepo.GetAsync(ch => (ch.CreatorId == cht.creatorId && ch.SecondUserId == cht.secondUserId) || (ch.CreatorId == cht.secondUserId && ch.SecondUserId == cht.creatorId) )).FirstOrDefault(); if (chatRoom != null) { Message msg = new Message(); msg.Content = cht.message; foreach (var ch in msg.Content) { if (char.IsWhiteSpace(ch)) { continue; } await _messageService.AddMessageToRoomAsync(chatRoom.Id, msg, cht.creatorId); } } else { ChatRoom newChatRoom = new ChatRoom(); newChatRoom.CreatorId = cht.creatorId; newChatRoom.SecondUserId = cht.secondUserId; await _chatRoomService.AddChatRoomAsync(newChatRoom); int chId = (await chatRoomRepo.GetAsync(ch => ch.CreatorId == cht.creatorId && ch.SecondUserId == cht.secondUserId)).FirstOrDefault().Id; Message msg = new Message(); msg.Content = cht.message; foreach (var ch in msg.Content) { if (char.IsWhiteSpace(ch)) { continue; } await _messageService.AddMessageToRoomAsync(chId, msg, cht.creatorId); } } }
public async Task SendMessage(Guid roomId, string user, string message) { var m = new Message() { RoomId = roomId, Contents = message, UserName = user }; await _messageService.AddMessageToRoomAsync(roomId, m); await Clients.All.SendAsync("ReceiveMessage", user, message, roomId, m.Id, m.PostedAt); }
public async void Post([FromBody] Message message) { await _messageService.AddMessageToRoomAsync(message.RoomId, message); }