public Task ChatRoomJoin(string chatRoomName) { return(Task.Run(() => { var chatRoom = chatRoomService.GetChatRoom(chatRoomName); if (chatRoom == null) { return; } if (chatRoom.HasParticipant(Context.User)) { return; } if (chatRoom.RoomType == ChatRoom.Type.Public) { chatRoom.AddParticipant(Context.User); var apiObject = new ChatRoomJoin { ChatRoom = chatRoom.ApiChatRoom(), NewUser = Context.User.ApiGetUser() }; foreach (var participant in chatRoom.GetParticipants()) { var connection = userConnectionsService.ChatConnectionService.GetConnection(participant); Clients.Client(connection).ChatRoomJoin(apiObject); } } })); }
private async Task JoinChatRoom(ChatRoomJoin request, IServerStreamWriter <Message> responseStream) { Guid chatRoomId = Guid.Parse(request.ChatRoomId); var chatRoom = await _chatRooms.GetById(chatRoomId); if (chatRoom != null) { await _chatRoomService.Join(request.User, chatRoom, responseStream); } }
public static Task ChatRoomJoin(this IClientProxy hubConnection, ChatRoomJoin apiObject) { return(hubConnection.SendAsync(ChatHubApiKeys.ChatRoomJoin, apiObject)); }