Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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);
        }