Exemple #1
0
 //新增聊天室+成員
 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();
     }
 }
Exemple #2
0
        //移除聊天室成員
        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);
            }
        }
Exemple #3
0
        //加入聊天室
        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);
                }
            }
        }
Exemple #4
0
        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();
            }
        }