/// <summary> /// MainForm constructor. /// </summary> private MainForm() { SplashForm splash = new SplashForm(); splash.ShowSplashScreen(); Facade facade = Facade.GetInstance(); // Retrieve messages from inbox mailbox. facade.LoadMessageStore(Constants.Inbox, facade.GetMessageStore()); // Retrieve messages from sent item mailbox. facade.LoadMessageStore(Constants.SentItems, facade.GetMessageStoreSent()); // Retrieve messages from delete item mailbox. facade.LoadMessageStore(Constants.DeletedItems, facade.GetMessageStoreDelete()); // Retrieve messages from custom items mailbox. facade.LoadMessageStore(Constants.CustomFolders, facade.GetMessageStoreCustom()); // retrieve the messages from inbox mailbox. facade.RetrieveMessages(Constants.Inbox); // set the flag for load first message. loadFirstMessageFlag = true; // Use system fonts this.Font = SystemFonts.IconTitleFont; this._findSettings = new FindSettings(); // Designer Generated Code this.InitializeComponent(); // select the mail button. this.leftSpine1.toolStripButtonMail_Click(this, EventArgs.Empty); // closes the splash. splash.CloseSplashScreen(); // if there is no mail accounts. if (Facade.GetInstance().GetDefaultAccountInfo() == null) { SettingsReminderForm settingsReminderForm = new SettingsReminderForm(); DialogResult dr = settingsReminderForm.ShowDialog(); if (dr == DialogResult.OK) { AccountSettingsForm frm = new AccountSettingsForm(); frm.ShowDialog(); } } }
/// <summary> /// Event for copy a mail message to a folder. /// </summary> /// <param name="sender">The sender object.</param> /// <param name="e">The event arguments.</param> private void copytoFolderToolStripMenuItem_Click(object sender, EventArgs e) { MoveToFolderForm moveToFolderForm = new MoveToFolderForm(); moveToFolderForm.SelectedFolder = this.GetSelectedFolder(); DialogResult dr = moveToFolderForm.ShowDialog(); if (dr == DialogResult.OK) { Facade facade = Facade.GetInstance(); MailMessage mailMessage = this.rightSpine1.GetSelectedMessage(); mailMessage.ParentFolder = moveToFolderForm.SelectedFolder; facade.GetMessageStoreCustom().Messages.Add(mailMessage); } }
/// <summary> /// Event for move a mail message to a folder. /// </summary> /// <param name="sender">The sender object.</param> /// <param name="e">The event arguments.</param> public void toolStripMoveFolder_Click(object sender, EventArgs e) { MoveToFolderForm moveToFolderForm = new MoveToFolderForm(); moveToFolderForm.SelectedFolder = this.GetSelectedFolder(); DialogResult dr = moveToFolderForm.ShowDialog(); if (dr == DialogResult.OK) { Facade facade = Facade.GetInstance(); MailMessage mailMessage = this.rightSpine1.GetSelectedMessage(); mailMessage.ParentFolder = moveToFolderForm.SelectedFolder; facade.GetMessageStoreCustom().Messages.Add(mailMessage); this.messageArea1.MessageList.DeleteSelectedMessageForMove(); } }
/// <summary> /// After label edit event. /// </summary> /// <param name="sender">The sender object.</param> /// <param name="e">The event arguments.</param> private void folderTreeView_AfterLabelEdit(object sender, NodeLabelEditEventArgs e) { Facade facade = Facade.GetInstance(); MessageStore messageStore = facade.GetMessageStoreCustom(); foreach (MailMessage mail in messageStore.Messages) { if (mail.ParentFolder.Equals(e.Node.Text)) { mail.ParentFolder = e.Label; } } e.Node.Text = e.Label; this.folderTreeView_AfterSelect(this.folderTreeView, new TreeViewEventArgs(e.Node)); this.SaveFolders(); }
/// <summary> /// Method for delete the tree nodes recursively. /// </summary> /// <param name="node">The tree node for delete.</param> public void DeleteNodesRecursive(TreeNode node) { foreach (TreeNode child in node.Nodes) { this.DeleteNodesRecursive(child); } Facade facade = Facade.GetInstance(); MessageStore messageStore = facade.GetMessageStoreCustom(); for (int i = 0; i < messageStore.Messages.Count; i++) { MailMessage mail = messageStore.Messages[i]; if (mail.ParentFolder.Equals(node.Text)) { messageStore.Messages.Remove(mail); } } node.Remove(); }
/// <summary> /// Event for refresh the mailbox and messages. /// </summary> /// <param name="sender">The sender object.</param> /// <param name="e">The event arguments.</param> private void refreshToolStripMenuItem_Click(object sender, EventArgs e) { Facade facade = Facade.GetInstance(); // Retrieve messages from inbox mailbox. facade.LoadMessageStore(Constants.Inbox, facade.GetMessageStore()); facade.RetrieveMessages(Constants.Inbox); // Retrieve messages from sent item mailbox. facade.LoadMessageStore(Constants.SentItems, facade.GetMessageStoreSent()); // Retrieve messages from deleted item mailbox. facade.LoadMessageStore(Constants.DeletedItems, facade.GetMessageStoreDelete()); // Retrieve messages from custom items mailbox. facade.LoadMessageStore(Constants.CustomFolders, facade.GetMessageStoreCustom()); // Setup Message Server MessageStore messageStore = facade.GetMessageStore(); // load the selected message this.LoadSelectedMessage(facade.GetMessageStore()); }
/// <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); }