Пример #1
0
        /// <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();
        }
Пример #2
0
        /// <summary>
        /// Method for load the selected message.
        /// </summary>
        /// <param name="store">The MessageStore.</param>
        public void LoadSelectedMessage(MessageStore store)
        {
            this._store = store;

            if ((null != _store) && (null != _store.SelectedMessage))
            {
                this.SetFieldsVisible(true);

                // Hook change notification
                _store.PropertyChanged += new PropertyChangedEventHandler(MessageStore_PropertyChanged);

                // Get Current
                this.Message = _store.SelectedMessage;
            }
            else
            {
                this.SetFieldsVisible(false);
            }
        }
Пример #3
0
        /// <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();
        }
Пример #4
0
        /// <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());
        }
Пример #5
0
        /// <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);
        }
Пример #6
0
 /// <summary>
 /// Method for load the selected message.
 /// </summary>
 /// <param name="store">The MessageStore.</param>
 public void LoadSelectedMessage(MessageStore store)
 {
     // load the selected message
     this.rightSpine1.LoadSelectedMessage(store);
 }