Ejemplo n.º 1
0
        private void CreatePrivatePage(int userId, bool getPendingMessages = true)
        {
            var user = AllUsers.Instance.GetUser(userId);

            if (user == null)
            {
                return;
            }
            var userKey = userId.ToString();

            CreatePage(userKey, user.NickName);
            var newPage        = tabControl.TabPages[userKey];
            var newChatControl = new ChatMessagingControl {
                Dock = DockStyle.Fill
            };

            newChatControl.MessageEnteted   += message => engine.SendPrivateMessage(userId, message);
            newChatControl.ConversationLeft += () => LeaveConversationButtonClicked(userKey);
            newChatControl.Enable(engine.IsOnline());
            newPage.Controls.Add(newChatControl);
            UpdateImageIndexForPage(userKey);
            // posting old messages
            engine.GetPrivateMessages(userId).ForEach(m => PrintMessage(newChatControl, m));
            if (getPendingMessages)
            {
                engine.GetPendingPrivateMessages();
            }
        }
Ejemplo n.º 2
0
 private void ShowErrorInChatControl(ChatMessagingControl chatControl, DateTime time, string text)
 {
     PrintMessage(chatControl, new Message {
         Text = text, TimeStamp = time
     },
                  ChatMessagingControl.MessageStyle.Error);
 }
Ejemplo n.º 3
0
        private void CreatePageForRoom(string roomName)
        {
            CreatePage(roomName, roomName);
            var newPage        = tabControl.TabPages[roomName];
            var newChatControl = new ChatMessagingControl {
                Dock = DockStyle.Fill
            };

            newChatControl.MessageEnteted   += message => engine.SendMessage(roomName, message);
            newChatControl.ConversationLeft += () => LeaveConversationButtonClicked(roomName);
            newChatControl.Enable(engine.IsOnline());
            newPage.Controls.Add(newChatControl);
            UpdateImageIndexForPage(roomName);
            // posting old messages
            engine.GetMessages(roomName).ForEach(m => PrintMessage(newChatControl, m));
        }
Ejemplo n.º 4
0
        private void OnUserLeaveRoom(UserAction action)
        {
            var page = tabControl.TabPages[action.Room];
            ChatMessagingControl chatControl = null;

            if (page != null)
            {
                chatControl = (ChatMessagingControl)page.Controls[0];
            }

            if (action.UserId == engine.CurrentUserId)
            {
                highlightedPages.Remove(tabControl.TabPages[action.Room]);
                if (chatControl != null)
                {
                    ShowErrorInChatControl(chatControl, action.TimeStamp, "Вы перестали быть участником этой комнаты");
                }
                UpdateImageIndexForPage(action.Room);
                return;
            }

            // print message about leaving
            var user = AllUsers.Instance.GetUser(action.UserId);

            if (user == null)
            {
                return;
            }
            if (chatControl != null)
            {
                PrintMessage(chatControl,
                             new Message {
                    Text = user.NickName + " покинул комнату", TimeStamp = action.TimeStamp
                },
                             ChatMessagingControl.MessageStyle.Notify);
            }

            // remove left user from tree branch
            if (tabControl.SelectedTab == null || tabControl.SelectedTab.Name != action.Room)
            {
                return;
            }
            RemoveFromRoom("this", action.UserId.ToString());
            AddToRoom("others", action.UserId.ToString(), user.NickName);
        }
Ejemplo n.º 5
0
 private void ShowErrorInChatControl(ChatMessagingControl chatControl, DateTime time, string text)
 {
     PrintMessage(chatControl, new Message {Text = text, TimeStamp = time},
                  ChatMessagingControl.MessageStyle.Error);
 }
Ejemplo n.º 6
0
 private void PrintMessage(ChatMessagingControl chatControl, Message message, ChatMessagingControl.MessageStyle style = ChatMessagingControl.MessageStyle.None)
 {
     chatControl.AddMessage(message, engine, style);
 }
Ejemplo n.º 7
0
 private void CreatePrivatePage(int userId, bool getPendingMessages = true)
 {
     var user = AllUsers.Instance.GetUser(userId);
     if (user == null)
         return;
     var userKey = userId.ToString();
     CreatePage(userKey, user.NickName);
     var newPage = tabControl.TabPages[userKey];
     var newChatControl = new ChatMessagingControl { Dock = DockStyle.Fill };
     newChatControl.MessageEnteted += message => engine.SendPrivateMessage(userId, message);
     newChatControl.ConversationLeft += () => LeaveConversationButtonClicked(userKey);
     newChatControl.Enable(engine.IsOnline());
     newPage.Controls.Add(newChatControl);
     UpdateImageIndexForPage(userKey);
     // posting old messages
     engine.GetPrivateMessages(userId).ForEach(m => PrintMessage(newChatControl, m));
     if (getPendingMessages)
         engine.GetPendingPrivateMessages();
 }
Ejemplo n.º 8
0
 private void CreatePageForRoom(string roomName)
 {
     CreatePage(roomName, roomName);
     var newPage = tabControl.TabPages[roomName];
     var newChatControl = new ChatMessagingControl { Dock = DockStyle.Fill };
     newChatControl.MessageEnteted += message => engine.SendMessage(roomName, message);
     newChatControl.ConversationLeft += () => LeaveConversationButtonClicked(roomName);
     newChatControl.Enable(engine.IsOnline());
     newPage.Controls.Add(newChatControl);
     UpdateImageIndexForPage(roomName);
     // posting old messages
     engine.GetMessages(roomName).ForEach(m => PrintMessage(newChatControl, m));
 }
Ejemplo n.º 9
0
 private void PrintMessage(ChatMessagingControl chatControl, Message message, ChatMessagingControl.MessageStyle style = ChatMessagingControl.MessageStyle.None)
 {
     chatControl.AddMessage(message, engine, style);
 }