private void LoadData() { this.m_pMessages.BeginUpdate(); this.m_pMessages.Items.Clear(); DataSet messagesInfo = this.m_pFolder.GetMessagesInfo(); if (messagesInfo.Tables.Contains("MessagesInfo")) { foreach (DataRow dataRow in messagesInfo.Tables["MessagesInfo"].Rows) { IMAP_t_Fetch_r_i_Envelope iMAP_t_Fetch_r_i_Envelope = null; try { System.NetworkToolkit.StringReader stringReader = new System.NetworkToolkit.StringReader(dataRow["Envelope"].ToString()); stringReader.ReadWord(); stringReader = new System.NetworkToolkit.StringReader(stringReader.ReadParenthesized()); iMAP_t_Fetch_r_i_Envelope = IMAP_t_Fetch_r_i_Envelope.Parse(stringReader); } catch { iMAP_t_Fetch_r_i_Envelope = new IMAP_t_Fetch_r_i_Envelope(DateTime.Now, "Mailserver parse error", null, null, null, null, null, null, null, null); } ListViewItem listViewItem = new ListViewItem(iMAP_t_Fetch_r_i_Envelope.Subject); listViewItem.ImageIndex = 0; listViewItem.Tag = new object[] { dataRow["ID"].ToString(), Convert.ToInt32(dataRow["UID"]) }; if (iMAP_t_Fetch_r_i_Envelope.Sender != null && ((Mail_t_Mailbox)iMAP_t_Fetch_r_i_Envelope.Sender[0]).DisplayName != null && ((Mail_t_Mailbox)iMAP_t_Fetch_r_i_Envelope.Sender[0]).DisplayName != "") { listViewItem.SubItems.Add(((Mail_t_Mailbox)iMAP_t_Fetch_r_i_Envelope.Sender[0]).DisplayName); } else if (iMAP_t_Fetch_r_i_Envelope.From != null && iMAP_t_Fetch_r_i_Envelope.From.Length > 0) { listViewItem.SubItems.Add(iMAP_t_Fetch_r_i_Envelope.From[0].ToString()); } else { listViewItem.SubItems.Add("<none>"); } listViewItem.SubItems.Add(iMAP_t_Fetch_r_i_Envelope.Date.ToString()); listViewItem.SubItems.Add((Convert.ToDecimal(dataRow["Size"]) / 1000m).ToString("f2")); this.m_pMessages.Items.Add(listViewItem); } this.mt_Info.Text = string.Concat(new object[] { "User '", this.m_pFolder.User.UserName, "' Folder '", this.m_pFolder.FolderFullPath, "' Messages (", messagesInfo.Tables["MessagesInfo"].Rows.Count, ")" }); } this.m_pMessages.EndUpdate(); this.m_pMessages_SelectedIndexChanged(null, null); }
/// <summary> /// Loads messages to UI. /// </summary> private void LoadData() { m_pMessages.BeginUpdate(); m_pMessages.Items.Clear(); DataSet ds = m_pFolder.GetMessagesInfo(); if (ds.Tables.Contains("MessagesInfo")) { foreach (DataRow dr in ds.Tables["MessagesInfo"].Rows) { IMAP_t_Fetch_r_i_Envelope envelope = null; try{ LumiSoft.Net.StringReader r = new LumiSoft.Net.StringReader(dr["Envelope"].ToString()); // Remove ENVELOPE and read content (). r.ReadWord(); r = new LumiSoft.Net.StringReader(r.ReadParenthesized()); envelope = IMAP_t_Fetch_r_i_Envelope.Parse(r); } catch { envelope = new IMAP_t_Fetch_r_i_Envelope(DateTime.Now, "Mailserver parse error", null, null, null, null, null, null, null, null); } ListViewItem item = new ListViewItem(envelope.Subject); item.ImageIndex = 0; item.Tag = new object[] { dr["ID"].ToString(), Convert.ToInt32(dr["UID"]) }; if (envelope.Sender != null && ((Mail_t_Mailbox)envelope.Sender[0]).DisplayName != null && ((Mail_t_Mailbox)envelope.Sender[0]).DisplayName != "") { item.SubItems.Add(((Mail_t_Mailbox)envelope.Sender[0]).DisplayName); } else { if (envelope.From != null && envelope.From.Length > 0) { item.SubItems.Add(envelope.From[0].ToString()); } else { item.SubItems.Add("<none>"); } } item.SubItems.Add(envelope.Date.ToString()); item.SubItems.Add(((decimal)(Convert.ToDecimal(dr["Size"]) / 1000)).ToString("f2")); m_pMessages.Items.Add(item); } mt_Info.Text = "User '" + m_pFolder.User.UserName + "' Folder '" + m_pFolder.FolderFullPath + "' Messages (" + ds.Tables["MessagesInfo"].Rows.Count + ")"; } m_pMessages.EndUpdate(); m_pMessages_SelectedIndexChanged(null, null); }