/// <summary> /// Event for position changed. /// </summary> /// <param name="sender">The sender object.</param> /// <param name="e">The event arguments.</param> private void messageBS_PositionChanged(object sender, EventArgs e) { MailMessage mailMessage = null; // select the first message as default. if (this.messageBS.Count > 0) { mailMessage = this.messageBS[0] as MailMessage; } // if there is a current message select it. try { mailMessage = this.messageBS.Current as MailMessage; } catch (Exception) { } // if the message is not null select it. if (mailMessage != null) { // Let the message store know _store.SelectedMessage = mailMessage; MainForm.GetInstance().LoadSelectedMessage(_store); } }
/// <summary> /// Method for verify if the message match the filter criteria. /// </summary> /// <param name="mailMessage">The mail message object.</param> /// <returns>The bool value indicating if the message is filtered or not.</returns> public bool IsMessageFiltered(MailMessage mailMessage) { bool ret = false; // verify the from field. if (!ret && !this.From.Equals(string.Empty)) { if (!mailMessage.From.Contains(this.From)) { ret = true; } } // verify the to field. if (!ret && !this.To.Equals(string.Empty)) { if (!mailMessage.To.Contains(this.To)) { ret = true; } } // verify the subject field. if (!ret && !this.Subject.Equals(string.Empty)) { if (!mailMessage.Subject.Contains(this.Subject)) { ret = true; } } // verify the message body field. if (!ret && !this.Message.Equals(string.Empty)) { Facade facade = Facade.GetInstance(); string mailbox = MainForm.GetInstance().GetSelectedMailbox(); string body = facade.GetMessageBodyString(mailMessage, mailbox); if (!body.Contains(this.Message)) { ret = true; } } // verify the message sent date. if (!ret && !this.DateFrom.Equals(string.Empty) || !this.DateTo.Equals(string.Empty)) { DateTime dtFrom = DateTime.MinValue; DateTime dtTo = DateTime.MaxValue; DateTime.TryParse(this.DateFrom, out dtFrom); DateTime.TryParse(this.DateTo, out dtTo); if (mailMessage.SentDate < dtFrom || mailMessage.SentDate > dtTo) { ret = true; } } return(ret); }
/// <summary> /// Method for remove the selected mail message. /// </summary> public void DeleteSelectedMessage() { Facade facade = Facade.GetInstance(); string mailbox = MainForm.GetInstance().GetSelectedMailbox(); DataGridViewSelectedRowCollection rows = this.dataGridView.SelectedRows; for (int i = rows.Count - 1; i >= 0; i--) { MailMessage mailMessage = (MailMessage)rows[i].DataBoundItem; facade.DeleteMessage(mailMessage, mailbox); this.dataGridView.Rows.Remove(rows[i]); } this.Refresh(); }
/// <summary> /// Method for load messages. /// </summary> /// <param name="messageListType">The Message List Type.</param> public void LoadMessages(MessageListType messageListType) { this.toolStripLabel1.Text = MainForm.GetInstance().GetSelectedFolder(); this.messageList1.LoadMessages(messageListType); }
/// <summary> /// Event handler for new folder tool strip menu item. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void newFolderToolStripMenuItem_Click(object sender, EventArgs e) { MainForm.GetInstance().newFolderToolStripMenuItem_Click(sender, e); }
/// <summary> /// Event for tree view after select. /// </summary> /// <param name="sender">The object sender.</param> /// <param name="e">The event arguments.</param> private void folderTreeView_AfterSelect(object sender, TreeViewEventArgs e) { MainForm mainForm = (MainForm)this.ParentForm; if (e.Node.Text.Equals(Constants.Unread)) { mainForm.LoadMessages(MessageListType.Unread); } else if (e.Node.Text.Equals(Constants.Read)) { mainForm.LoadMessages(MessageListType.Read); } else if (e.Node.Text.Equals(Constants.Inbox)) { mainForm.LoadMessages(MessageListType.Inbox); } else if (e.Node.Text.Equals(Constants.SentItems)) { mainForm.LoadMessages(MessageListType.SentItems); } else if (e.Node.Text.Equals(Constants.Outbox)) { mainForm.LoadMessages(MessageListType.Outbox); } else if (e.Node.Text.Equals(Constants.DeletedItems)) { mainForm.LoadMessages(MessageListType.DeletedItems); } else if (e.Node.Text.Equals(Constants.Drafts)) { mainForm.LoadMessages(MessageListType.Drafts); } else if (e.Node.Text.Equals(Constants.JunkEmail)) { mainForm.LoadMessages(MessageListType.JunkEmail); } else if (e.Node.Text.Equals(Constants.SyncFailures)) { mainForm.LoadMessages(MessageListType.SyncFailure); } else if (e.Node.Text.Equals(Constants.SearchFolders)) { mainForm.LoadMessages(MessageListType.SearchFolders); } else if (e.Node.Text.Equals(Constants.RootFolder)) { mainForm.LoadMessages(MessageListType.RootFolder); } else if (e.Node.Text.Equals(Constants.ArquiveFolders)) { mainForm.LoadMessages(MessageListType.ArchiveFolder); } else if (e.Node.Text.Equals(Constants.Empty)) { mainForm.LoadMessages(MessageListType.Empty); } else if (e.Node.Text.Equals(Constants.MailHome)) { mainForm.LoadMessages(MessageListType.MailHome); } else { mainForm.LoadMessages(MessageListType.Custom); } MainForm.GetInstance().UpdateMessageCountLabel(); }
/// <summary> /// Move message to folder menu item click event handler. /// </summary> /// <param name="sender">The sender object.</param> /// <param name="e">The event arguments.</param> private void moveToFolderToolStripMenuItem_Click(object sender, EventArgs e) { MainForm.GetInstance().toolStripMoveFolder_Click(sender, e); }
/// <summary> /// Menu item forward event handler. /// </summary> /// <param name="sender">The sender object.</param> /// <param name="e">The event arguments.</param> private void forwardToolStripMenuItem_Click(object sender, EventArgs e) { MainForm.GetInstance().toolStripButtonForward_Click(sender, e); }
/// <summary> /// Menu item reply to all event handler. /// </summary> /// <param name="sender">The sender object.</param> /// <param name="e">The event arguments.</param> private void replyToAllToolStripMenuItem_Click(object sender, EventArgs e) { MainForm.GetInstance().toolStripButtonReplyToAll_Click(sender, e); }
/// <summary> /// Method for load messages. /// </summary> /// <param name="messageListType">The Message List Type.</param> public void LoadMessages(MessageListType messageListType) { Facade facade = Facade.GetInstance(); string selectedFolder = string.Empty; if (messageListType == MessageListType.Inbox || messageListType == MessageListType.Unread || messageListType == MessageListType.Read) { // Attach to Message Store this._store = facade.GetMessageStore(); } else if (messageListType == MessageListType.SentItems) { // Attach to Message Store Sent items this._store = facade.GetMessageStoreSent(); } else if (messageListType == MessageListType.DeletedItems) { // Attach to Message Store Sent items this._store = facade.GetMessageStoreDelete(); } else if (messageListType == MessageListType.Custom) { // Attach to Message Store Sent items this._store = facade.GetMessageStoreCustom(); selectedFolder = MainForm.GetInstance().GetSelectedFolder(); } else { this._store = new MessageStore(); } // Reset DataSource this.messageBS.DataSource = this._store.Messages; this.dataGridView.DataSource = this.messageBS; this.dataGridView.CurrentCell = null; CurrencyManager cm = (CurrencyManager)this.dataGridView.BindingContext[this.dataGridView.DataSource]; cm.SuspendBinding(); foreach (DataGridViewRow row in this.dataGridView.Rows) { MailMessage mailMessage = (MailMessage)row.DataBoundItem; if (messageListType == MessageListType.Unread && mailMessage.Read) { row.Visible = false; } else if (messageListType == MessageListType.Read && !mailMessage.Read) { row.Visible = false; } else if (messageListType == MessageListType.Custom && !mailMessage.ParentFolder.Equals(selectedFolder)) { row.Visible = false; } else { row.Visible = true; } } cm.ResumeBinding(); if (this.messageBS.Count > 0) { this.dataGridView.Sort(this.dataGridView.Columns[2], ListSortDirection.Descending); } MainForm mainForm = this.ParentForm as MainForm; mainForm.LoadSelectedMessage(this._store); this.Invalidate(true); }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(MainForm.GetInstance()); }