/// <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 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); }