Exemple #1
0
        /// <summary>
        /// Initiliazes all the chatrooms based on the <see cref="Dictionary{TKey, TValue}"/> parameter.
        /// </summary>
        public void InitializeChatrooms(Dictionary <int, Chatroom> rooms)
        {
            foreach (var item in rooms)
            {
                Chatroom room = item.Value;

                if (!Chatrooms.ContainsKey(room.ID))
                {
                    Chatrooms.Add(room.ID, room);
                    ChatroomsList.Add(room);
                }
            }

            List <Chatroom> toRemove = new List <Chatroom>();

            foreach (var item in Chatrooms)
            {
                if (!item.Value.IsPrivate && !rooms.ContainsKey(item.Key))
                {
                    toRemove.Add(item.Value);
                }
            }

            foreach (var item in toRemove)
            {
                Chatrooms.Remove(item.ID);
                ChatroomsList.Remove(item);
            }

            OnChatroomsChanged(new EventArgs());
        }
Exemple #2
0
 /// <summary>
 /// Handles a chatroom voice message.
 /// </summary>
 public void HandleMessage(Voice.VoiceMessage message)
 {
     if (Chatrooms.ContainsKey(message.ChatroomID))
     {
         Chatroom room = Chatrooms[message.ChatroomID];
         room.NewMessage(message);
     }
 }
        /// <summary>
        /// Sends a voice message to a certain <see cref="Chatroom"/>.
        /// </summary>
        public void SendMessage(int chatroomId, byte[] voice, ConnectionCore connection)
        {
            if (Chatrooms.ContainsKey(chatroomId))
            {
                Chatroom room = Chatrooms[chatroomId];

                room.SendMessage(connection, voice);
            }
        }
        /// <summary>
        /// Sends a message to a certain <see cref="Chatroom"/>.
        /// </summary>
        public void SendMessage(int chatroomId, string chatmessage, ConnectionCore connection)
        {
            if (Chatrooms.ContainsKey(chatroomId))
            {
                Chatroom room = Chatrooms[chatroomId];

                room.SendMessage(connection, chatmessage);
            }
        }
Exemple #5
0
 /// <summary>
 /// Removes a chatroom based on the <see cref="Chatroom.ID"/>.
 /// </summary>
 public void RemoveChatroom(int chatroomId)
 {
     if (Chatrooms.ContainsKey(chatroomId))
     {
         Chatroom room = Chatrooms[chatroomId];
         DisconnectChatroom(room);
         ChatroomsList.Remove(room);
         Chatrooms.Remove(chatroomId);
     }
 }
Exemple #6
0
        /// <summary>
        /// Returns a <see cref="bool"/> value whether the user is in the chatroom.
        /// </summary>
        public bool IsInChatroom(int id)
        {
            if (Chatrooms.ContainsKey(id))
            {
                Chatroom room = Chatrooms[id];
                return(room.IsInChatroom);
            }

            return(false);
        }
Exemple #7
0
        public void ChatroomMenu()
        {
            Send("What chatroom would you like to join?");
            string input = "";

            do
            {
                input = GetUserInput(ListChatrooms + "\n");
            } while (!Chatrooms.ContainsKey(input));

            ChangeChatroom(Chatrooms[input]);
        }
 /// <summary>
 /// Returns a <see cref="Chatroom"/> based on its ID.
 /// </summary>
 public Chatroom GetChatroom(int chatroomId)
 {
     try
     {
         if (Chatrooms.ContainsKey(chatroomId))
         {
             return(Chatrooms[chatroomId]);
         }
         else
         {
             return(null);
         }
     }
     catch
     {
         return(null);
     }
 }
Exemple #9
0
        /// <summary>
        /// Joins a chatroom based on <see cref="Chatroom.ID"/>.
        /// </summary>
        public void JoinChatroom(int chatRoomId, JoinState state)
        {
            if (Chatrooms.ContainsKey(chatRoomId))
            {
                Chatroom room = Chatrooms[chatRoomId];
                OnChatroomJoined(new JoinedChatroomEventArgs(room, state));
                if (ClientManager.ConnectionCore.ConnectionId != -1 && state == JoinState.JoinChatRoomOk)
                {
                    ChatroomUser user = new ChatroomUser(ClientManager.ConnectionCore.ConnectionId, ClientManager.ConnectionCore.ConnectionData.Username);

                    // room.ChatRoomUsers.Add(user.ConnectionId, user);

                    room.IsInChatroom = true;
                }
            }
            else
            {
                OnChatroomJoined(new JoinedChatroomEventArgs(null, JoinState.JoinChatRoomError));
            }
        }
        /// <summary>
        /// Connects a user to a chatroom and returns a <see cref="JoinState"/>.
        /// </summary>
        public JoinState JoinChatroom(int chatRoomId, string password, ConnectionCore connection)
        {
            if (Chatrooms.ContainsKey(chatRoomId))
            {
                Chatroom room = Chatrooms[chatRoomId];

                if (string.IsNullOrEmpty(room.Password) || password == room.Password || room.Owner == connection.ID)
                {
                    room.Join(connection);
                    return(JoinState.JoinChatRoomOk);
                }
                else
                {
                    return(JoinState.JoinChatRoomWrongPassword);
                }
            }
            else
            {
                return(JoinState.JoinChatRoomError);
            }
        }