Пример #1
0
        public Task ChatRoomSendMessage(string message, string chatRoomName)
        {
            return(Task.Run(() =>
            {
                var chatRoom = chatRoomService.GetChatRoom(chatRoomName);
                if (chatRoom.HasParticipant(Context.User))
                {
                    ChatMessage chatMessage = new ChatMessage
                    {
                        User = Context.User,
                        Message = message,
                        WhenCreated = DateTime.UtcNow
                    };
                    chatRoom.AddChatMessage(chatMessage);

                    var apiObject = new ChatRoomSendMessage
                    {
                        ChatMessage = chatMessage.ApiGetChatMessage(),
                        ChatRoomName = chatRoomName
                    };
                    foreach (var participant in chatRoom.GetParticipants())
                    {
                        var connection = userConnectionsService.ChatConnectionService.GetConnection(participant);
                        Clients.Client(connection).ChatRoomSendMessage(apiObject);
                    }
                }
            }));
        }
 public static Task ChatRoomSendMessage(this IClientProxy hubConnection, ChatRoomSendMessage apiObject)
 {
     return(hubConnection.SendAsync(ChatHubApiKeys.ChatRoomSendMessage, apiObject));
 }