Exemplo n.º 1
0
        public void OpenMessageRoom(ChatRoom room)
        {
            Form openForm = BlindChatUtil.GetFormWithName(room.ID.ToString());

            if (openForm != null)
            {
                ExecuteWithInvoke(openForm, delegate
                {
                    if (openForm.WindowState == FormWindowState.Minimized)
                    {
                        openForm.WindowState = FormWindowState.Normal;
                        openForm.Location    = new Point(openForm.Location.X + openForm.Width, openForm.Location.Y);
                    }
                    openForm.Activate();
                });
            }
            else
            {
                Task tMessageRoom = new Task(() =>
                {
                    MessageRoom messageRoom     = new MessageRoom(_UserID, room, GetMessageList(room.ID));
                    messageRoom.SendChatMessage = ChatMessageSend;
                    messageRoom.Location        = new Point(form.Location.X + form.Width, form.Location.Y);
                    Application.Run(messageRoom);
                });
                tMessageRoom.Start();
            }
        }
Exemplo n.º 2
0
        public void AddMessage(ChatMessage message)
        {
            string sql = $"insert into ChatMessage (message, userID, roomID, time) values (\'{message.Message}\', {message.UserID}, {message.RoomID}, \'{message.Time}\');";

            DB.ExecuteNonQuery(sql);

            sql = $"update ChatRoom set LastMessageTime = \'{message.Time}\' where ID={message.RoomID}";
            DB.ExecuteNonQuery(sql);

            foreach (ChatRoom a in BlindChat.roomList)
            {
                if (a.ID == message.RoomID)
                {
                    ChatRoom tmpRoom = a;
                    tmpRoom.LastMessageTime = message.Time;
                    BlindChat.roomList[roomList.IndexOf(a)] = tmpRoom;
                    break;
                }
            }
            ExecuteWithInvoke(this.form, delegate
            {
                //UI._RoomControl.LoadRooms();

                foreach (Room_Item item in UI._RoomControl.RoomItem_LayoutPanel.Controls)
                {
                    if (item.ID == message.RoomID)
                    {
                        DateTime time = DateTime.Parse(message.Time);

                        item.Time = time.ToString("tt hh:mm");

                        UI._RoomControl.RoomItem_LayoutPanel.Controls.SetChildIndex((Control)item, 0);
                        UI._RoomControl.RoomItem_LayoutPanel.Invalidate();
                    }
                }
            });



            MessageRoom form = BlindChatUtil.GetFormWithName(message.RoomID.ToString()) as MessageRoom;

            if (form != null)
            {
                ExecuteWithInvoke(form, delegate
                {
                    form.AddMessage(message);
                });
            }
        }
Exemplo n.º 3
0
 private MessageRoom GetRoom(string id1, string id2)
 {
     // This is currently dumb about getting the last room
     // Better way would be either to store dates and OrderBy()
     // or walk the list and take the last one
     var room = _messageRoomRepository.Get(x =>
         (x.UserId1 == id1 && x.UserId2 == id2)
         || (x.UserId1 == id2 && x.UserId2 == id1)
     ).LastOrDefault();
     if (room == null)
     {
         room = new MessageRoom
         {
             UserId1 = id1,
             UserId2 = id2,
             Messages = new System.Collections.Generic.List<Message>(),
             previousRoomId = null,
             IsDeleted = false
         };
         _messageRoomRepository.Add(room);
     }
     return room;
 }