public void Init()
        {
            Tuple <List <int>, List <DateTime>, List <int> > list = UserChatRecordManager.GetUserIdList(GlobalClass.CurrentUser.Id, Ids, contentTB.Text);

            if (list.Item1.Count > 0)
            {
                string ids        = string.Join(",", list.Item1);
                string Users      = HTTPUtil.SendGetRequest(Util.GetHttpUrl() + "/getUsersByUserid/" + ids);
                JArray usersArray = JArray.Parse(Users);
                userList = new List <User>();
                for (int i = 0; i < usersArray.Count; i++)
                {
                    User user = new User()
                    {
                        Id        = int.Parse((string)usersArray[i]["id"]),
                        Name      = (string)usersArray[i]["name"],
                        Account   = (string)usersArray[i]["account"],
                        Headimage = (string)usersArray[i]["headimage"]
                    };
                    userList.Add(user);
                    Image image = string.IsNullOrEmpty(user.Headimage) ? Properties.Resources.defalut : Util.GetImageByBase64Str(user.Headimage);
                    imageList.Images.Add(i.ToString(), image);
                }
                for (int i = 0; i < userList.Count; i++)
                {
                    ListViewItem lvi = new ListViewItem();
                    lvi.ImageIndex = i;     //通过与imageList绑定,显示imageList中第i项图标 
                    lvi.Text       = userList[i].Name + "(" + userList[i].Account + ")";
                    lvi.SubItems.Add(list.Item2[i].ToString("yyyy-MM-dd HH:mm:ss"));
                    lvi.SubItems.Add(list.Item3[i].ToString());
                    this.listView.Items.Add(lvi);
                }
                this.listView.Items[0].Selected = true;
            }
        }
        private void sendBtn_Click(object sender, EventArgs e)
        {
            string str = sendRichBox.Text;

            if (string.IsNullOrEmpty(str.Trim('\n').Trim('\t').Trim(' ')))
            {
                sendRichBox.Text = "";
                sendRichBox.Focus();
                MessageBox.Show("发送内容不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            DateTime    dt      = DateTime.Now;
            string      style   = null;
            string      content = ChatContent.GetStringByContent(str, fontDialog.Font, colorDialog.Color, dt, ref style);
            MessageType mt      = new MessageType(GlobalClass.CurrentUser.Id, DestUser.Id, content, 1);

            TCPUtil.socketSend.Send(mt.ToJsonBytes());
            recRichBox.AppendText(dt.ToString("yyyy-MM-dd HH:mm:ss") + " " + GlobalClass.CurrentUser.Name + "(" + GlobalClass.CurrentUser.Account + ")" + "\n");
            recRichBox.SelectionFont  = fontDialog.Font;
            recRichBox.SelectionColor = colorDialog.Color;
            recRichBox.AppendText(str + "\n");
            FormatChatText();
            sendRichBox.Text = "";
            UserChatRecord ur = new UserChatRecord()
            {
                MyId    = GlobalClass.CurrentUser.Id,
                UserId  = DestUser.Id,
                Time    = dt,
                Content = str,
                Style   = style,
                Role    = 0
            };

            UserChatRecordManager.AddRecord(ur);
        }
        private void 导出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Filter = "文件(*.xlsx)|*.xlsx|所有文件(*.*)|*.*";

            if (sfd.ShowDialog() == DialogResult.OK)
            {
                string fileName = sfd.FileName;
                List <List <UserChatRecord> > list = UserChatRecordManager.GetAllRecord(GlobalClass.CurrentUser.Id, userList);
                SaveDataToExcelForm           sc   = new SaveDataToExcelForm(fileName, userList, list);
                sc.ShowDialog();
            }
        }
 private void listView_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (this.listView.FocusedItem != null)
     {
         recordRichTB.Clear();
         string info       = this.listView.FocusedItem.Text;
         int    startindex = info.IndexOf('(');
         int    endindex   = info.IndexOf(')');
         string account    = info.Substring(startindex + 1, endindex - startindex - 1);
         int    id         = 0;
         userList.ForEach(user => { if (user.Account == account)
                                    {
                                        id = user.Id;
                                    }
                          });
         CurrentUserId = id;
         int totalRecord = UserChatRecordManager.GetChatRecordListCount(CurrentUserId, contentTB.Text, GlobalClass.CurrentUser.Id);
         CurrentPage = 1;
         TotalPage   = totalRecord % Size > 0 ? totalRecord / Size + 1 : totalRecord / Size;
         StartQuery(CurrentPage);
     }
 }
 public void InitChatText(List <MessageType> list)
 {
     foreach (MessageType mt in list)
     {
         string      style = null;
         ChatContent cc    = ChatContent.GetChatContentByStr(mt.Content, ref style);
         recRichBox.AppendText(cc.Time.ToString("yyyy-MM-dd HH:mm:ss") + " " + DestUser.Name + "(" + DestUser.Account + ")" + "\n");
         recRichBox.SelectionColor = cc.Color;
         recRichBox.SelectionFont  = new Font(cc.FontFamily, cc.Size, cc.FontStyle);
         recRichBox.AppendText(cc.Content + "\n");
         FormatChatText();
         UserChatRecord ur = new UserChatRecord()
         {
             MyId    = GlobalClass.CurrentUser.Id,
             UserId  = DestUser.Id,
             Time    = cc.Time,
             Content = cc.Content,
             Style   = style,
             Role    = 1
         };
         UserChatRecordManager.AddRecord(ur);
     }
 }
        public void ReceiveMsg(string str)
        {
            string style = null;

            recRichBox.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + DestUser.Name + "(" + DestUser.Account + ")" + "\n");
            ChatContent cc = ChatContent.GetChatContentByStr(str, ref style);

            recRichBox.SelectionColor = cc.Color;
            recRichBox.SelectionFont  = new Font(cc.FontFamily, cc.Size, cc.FontStyle);
            recRichBox.AppendText(cc.Content + "\n");
            FormatChatText();
            UserChatRecord ur = new UserChatRecord()
            {
                MyId    = GlobalClass.CurrentUser.Id,
                UserId  = DestUser.Id,
                Time    = cc.Time,
                Content = cc.Content,
                Style   = style,
                Role    = 1
            };

            UserChatRecordManager.AddRecord(ur);
        }
        private void StartQuery(int page)
        {
            List <UserChatRecord> list = UserChatRecordManager.GetChatRecordList(CurrentUserId, page, Size, contentTB.Text, GlobalClass.CurrentUser.Id);

            FillRichBox(list);
        }