Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
                }
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 public async void Post([FromBody] Message message)
 {
     await _messageService.AddMessageToRoomAsync(message.RoomId, message);
 }