/* Remove user from room. when last user leave, room will be removed too * 'public' room always exist. * */ public void RemoveUserFromRoom(IUser user) { if (userMap[user] == nullRoomName) //user not in any room. return; string roomname = userMap[user]; roomMap[roomname].Remove(user); userMap[user] = nullRoomName; RoomBroadcast(roomname, "\r\n<= *user has left chat: "+user.GetStatus().UserName+"\r\n=> "); user.SendToClient("\r\n<= *user has left chat: " + user.GetStatus().UserName + " (**this is you)\r\n"); //when last user leave if (roomMap[roomname].Count == 0 && roomname != publicRoomName) { RemoveRoom(roomname); } }