Exemplo n.º 1
0
        private void Client_UnseenCountChanged(object sender, EventArgs e)
        {
            EmailModel         client = (EmailModel)sender;
            CustomTreeListNode node   = (CustomTreeListNode)EmailTreeList.Nodes.Single(obj => obj.ChildObject == client);

            node.Text = client.UnseenCount > 0
                ? client.Address + " (" + client.UnseenCount + ")"
                : client.Address;
            if (client.UnseenCount > 0)
            {
                node.Bold = true;
            }
        }
Exemplo n.º 2
0
        private void LoadFolders(List <EmailModel> clients)
        {
            foreach (EmailModel client in clients)
            {
                int nodeIndex = -1;

                if (EmailTreeList.Nodes.Select(obj => obj.ChildObject).Any(obj => ((EmailModel)obj) == client))
                {
                    CustomTreeListNode node = EmailTreeList.Nodes.Find(obj => ((EmailModel)obj.ChildObject) == client);
                    nodeIndex = EmailTreeList.Nodes.IndexOf(node);
                    EmailTreeList.RemoveNode(node);
                }

                if (client.ImapClient != null)
                {
                    long unseenCount = 0;

                    foreach (Message message in client.UnhandledMessages)
                    {
                        unseenCount += message.Seen ? 0 : 1;
                    }

                    CustomTreeListNode rootNode = new CustomTreeListNode(client.Address,
                                                                         ImageHelper.UriToImageSource(new Uri("pack://application:,,,/resources/mail.png")));

                    rootNode.ChildObject = client;
                    EmailTreeList.AddNode(rootNode, nodeIndex);

                    client.UnseenCountChanged += Client_UnseenCountChanged;
                    client.UnseenCount         = (Int32)unseenCount;
                }
                else
                {
                    if (client.CannotConnect)
                    {
                        CustomTreeListNode rootNode = new CustomTreeListNode(client.Address,
                                                                             ImageHelper.UriToImageSource(new Uri("pack://application:,,,/resources/mail_error.png")));
                        rootNode.ChildObject = client;
                        EmailTreeList.AddNode(rootNode, nodeIndex);
                    }
                    else
                    {
                        CustomTreeListNode rootNode = new CustomTreeListNode(client.Address,
                                                                             ImageHelper.UriToImageSource(new Uri("pack://application:,,,/resources/mail_locked.png")));
                        rootNode.ChildObject = client;
                        EmailTreeList.AddNode(rootNode, nodeIndex);
                    }
                }
            }
            MessagesGrid.SelectedCellsChanged += MessagesGrid_SelectedCellsChanged;
        }
Exemplo n.º 3
0
        private void EmailTree_SelectedNodeChanged(object sender, CustomTreeListSelectedNodeChangedEventArgs e)
        {
            CustomTreeListNode selectedNode = e.SelectedNode;

            if (selectedNode.ChildObject.GetType().Name == "EmailModel")
            {
                EmailModel email = (EmailModel)selectedNode.ChildObject;
                if (email.ImapClient == null)
                {
                    if (!email.CannotConnect)
                    {
                        EmailLogin emailLogin = new EmailLogin(email);
                        emailLogin.ReadyButtonClicked += (s, ea) =>
                        {
                            email.Login    = emailLogin.Login;
                            email.Password = emailLogin.Password;

                            _parent.mainCanvas.Children.Remove(emailLogin);
                            _parent.Darkened = false;

                            _parent.EmailWorker.RunWorkerAsync(new List <EmailModel>()
                            {
                                email
                            });
                        };

                        emailLogin.CancelButtonClicked += (s, ea) =>
                        {
                            _parent.mainCanvas.Children.Remove(emailLogin);
                            _parent.Darkened = false;
                        };

                        _parent.Darkened = true;
                        _parent.mainCanvas.Children.Add(emailLogin);
                        return;
                    }
                }

                FillMessages(email.UnhandledMessages);
            }
            _parent.NewUnhandledMessageArrived += _parent_NewUnhandledMessageArrived;
        }