//新增聊天室+成員 public void NewChatroom(string roomName, string userID) { using (TransactionScope scope = new TransactionScope()) { //更新使用者代號 ChatClient chatClient = repoChatClient.Find(Guid.Parse(Context.ConnectionId)); if (string.IsNullOrEmpty(chatClient.UserID)) { chatClient.UserID = userID; repoChatClient.SaveChanges(chatClient); } //新增聊天室 Chatroom chatroom = repoChatroom.Find(roomName); if (chatroom == null) { chatroom = new Chatroom(); chatroom.ChatroomName = roomName; chatroom.ChatroomType = "S"; repoChatroom.SaveChanges(chatroom); } //新增聊天室成員 ChatroomDetail chatroomDetail = repoChatroomDetail.Find(chatroom.ChatroomID, Guid.Parse(Context.ConnectionId)); if (chatroomDetail == null) { chatroomDetail = new ChatroomDetail(); chatroomDetail.ChatroomID = chatroom.ChatroomID; chatroomDetail.ConnectionID = Guid.Parse(Context.ConnectionId); repoChatroomDetail.SaveChanges(chatroomDetail); } scope.Complete(); } }
//移除聊天室成員 public void RemoveClientFromChatroom(string roomName) { Chatroom chatroom = repoChatroom.Find(roomName); ChatroomDetail chatroomDetail = repoChatroomDetail.Find(chatroom.ChatroomID, Guid.Parse(Context.ConnectionId)); if (chatroomDetail != null) { chatroomDetail.DisconnectTime = DateTime.Now; chatroomDetail.IsEnable = false; repoChatroomDetail.SaveChanges(chatroomDetail); } }
//加入聊天室 public void JoinChatroom(ChatRoom chatRoom) { Chatroom chatroom = repoChatroom.Find(chatRoom.RoomID); if (chatroom != null) { ChatroomDetail chatroomDetail = repoChatroomDetail.Find(chatroom.ChatroomID, Guid.Parse(Context.ConnectionId)); if (chatroomDetail == null) { chatroomDetail = new ChatroomDetail(); chatroomDetail.ChatroomID = chatroom.ChatroomID; chatroomDetail.ConnectionID = Guid.Parse(Context.ConnectionId); repoChatroomDetail.SaveChanges(chatroomDetail); } } }
public void AddUserToChatroom(int chatroomId, int userId) { using (context) { if (CheckIfUserIsMember(chatroomId, userId)) { throw new ArgumentException("User is already a member of the chatroom."); } ChatroomDetail crDetail = new ChatroomDetail() { ChatroomID = chatroomId, UserID = userId }; context.ChatroomDetails.Add(crDetail); context.SaveChanges(); } }