示例#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());
        }
示例#2
0
        private static void AddRooms()
        {
            try
            {
                chatmanager = new DatabaseManager(30, 10, DatabaseType.MySQL);
                chatmanager.setServerDetails(Setting["server"], uint.Parse(Setting["mport"]), Setting["username"], "", "chatserver");
                chatmanager.init();
            }
            catch (Exception e)
            {
                Out.WriteLine("Error: " + e.Message, "MySQL", ConsoleColor.Red);
                Console.ReadKey();
                Environment.Exit(0);
            }
            try
            {
                manager = new DatabaseManager(30, 10, DatabaseType.MySQL);
                manager.setServerDetails(Setting["server"], uint.Parse(Setting["mport"]), Setting["username"], "", "aurora");
                manager.init();
            }
            catch (Exception e)
            {
                Out.WriteLine("Error: " + e.Message, "MySQL", ConsoleColor.Red);
                Console.ReadKey();
                Environment.Exit(0);
            }

            using (var dbClient = chatmanager.getQueryreactor())
            {
                var data = (DataTable)dbClient.query("SELECT * FROM chatrooms");
                foreach (DataRow row in data.Rows)
                {
                    var chat = new Chatroom
                    {
                        Index = Convert.ToInt32(row[0]),
                        Name  = row[1].ToString(),
                        Id    = Convert.ToInt32(row[2])
                    };
                    Chatrooms.Add(chat.Id, chat);
                }
                var mmo = new Chatroom
                {
                    Index = Convert.ToInt32(1),
                    Name  = "MMO",
                    Id    = Convert.ToInt32(22)
                }; var vru = new Chatroom
                {
                    Index = Convert.ToInt32(1),
                    Name  = "VRU",
                    Id    = Convert.ToInt32(253)
                }; var eic = new Chatroom
                {
                    Index = Convert.ToInt32(1),
                    Name  = "EIC",
                    Id    = Convert.ToInt32(252)
                };
            }
            Out.WriteLine("" + Chatrooms.Count + " Chat rooms are loaded.");
        }
示例#3
0
        /// <summary>
        /// Adds a private chatroom to the chatroom mananger.
        /// </summary>
        public void AddPrivateRoom(Chatroom room)
        {
            room.IsPrivate = true;

            Chatrooms.Add(room.ID, room);
            ChatroomsList.Add(room);

            OnChatroomsChanged(new EventArgs());
        }
示例#4
0
        /// <summary>
        /// Createsand returns a <see cref="Chatroom"/> based on the name, description and password.
        /// </summary>
        public Chatroom CreateChatRoom(string name, string desc, string pass, ConnectionCore connection)
        {
            Chatroom chatRoom = new Chatroom(LastRoomId++, name, desc, pass);

            chatRoom.Join(connection);
            Chatrooms.Add(chatRoom.ID, chatRoom);

            ServerManager.ConnectionController.SendMessage(new InitializeChatroomsComposer(Chatrooms));
            return(chatRoom);
        }
示例#5
0
 /// <summary>
 /// Adds a chatroom to the <see cref="Chatrooms"/> <see cref="Dictionary{TKey, TValue}"/>.
 /// </summary>
 public void AddChatroom(Chatroom chatroom)
 {
     Chatrooms.Add(chatroom.ID, chatroom);
 }