Exemplo n.º 1
0
        public static void LoadChatRooms()
        {
            using (var mySqlClient = SqlDatabaseManager.GetClient())
            {
                var data = (DataTable)mySqlClient.ExecuteQueryTable("SELECT * FROM chat_rooms");
                foreach (DataRow row in data.Rows)
                {
                    int    id        = Convert.ToInt32(row["Id"]);
                    string name      = Convert.ToString(row["Name"]);
                    int    tabOrder  = Convert.ToInt32(row["TabOrder"]);
                    int    companyId = Convert.ToInt32(row["CompanyId"]);

                    var chat = new Chat.Room(id, name, tabOrder, companyId);
                    Chat.Room.Rooms.Add(chat.Id, chat);
                }
            }
        }
Exemplo n.º 2
0
        public static RoomNameChanged AddRoomNameChangedEventHandler <T>(
            this RoomWatcher <T> rw,
            Action <Chat.Room> callback)
            where T : IWebSocket
        {
            callback.ThrowIfNull(nameof(callback));

            var eventProcessor = new RoomNameChanged();

            eventProcessor.OnEvent += () =>
            {
                var room = new Chat.Room(rw.Host, rw.RoomId, rw.Auth);

                callback(room);
            };

            rw.EventRouter.AddProcessor(eventProcessor);

            return(eventProcessor);
        }
Exemplo n.º 3
0
        public static UserInvitedToRoom AddUserInvitedToRoomEventHandler <T>(
            this RoomWatcher <T> rw,
            Action <Chat.User, Chat.User, Chat.Room> callback)
            where T : IWebSocket
        {
            callback.ThrowIfNull(nameof(callback));

            var eventProcessor = new UserInvitedToRoom();

            eventProcessor.OnEvent += ri =>
            {
                Chat.User inviter = null;
                Chat.User invitee = null;
                Chat.Room room    = null;

                var tasks = new[]
                {
                    Task.Run(() =>
                    {
                        inviter = new Chat.User(rw.Host, ri.Inviter, rw.Auth);
                    }),
                    Task.Run(() =>
                    {
                        invitee = new Chat.User(rw.Host, ri.Invitee, rw.Auth);
                    }),
                    Task.Run(() =>
                    {
                        room = new Chat.Room(rw.Host, ri.Room, rw.Auth);
                    })
                };

                Task.WaitAll(tasks);

                callback(inviter, invitee, room);
            };

            rw.EventRouter.AddProcessor(eventProcessor);

            return(eventProcessor);
        }