private void AddParser(EmailUrlParserConfiguration settings)
        {
            if (_parsers.ContainsKey(settings))
            {
                return;
            }
            Parser parser;

            parser = settings.IsPath ? new ListParser()
            {
                Settings = settings
            } : new Parser()
            {
                Settings = settings
            };

            parser.ImapEvent += ParserOnImapEvent;
            _parsers.Add(settings, parser);
            var newNode = new TreeNode(settings.Username)
            {
                Tag = settings, Name = settings.Username
            };

            treeViewEmails.Nodes.Add(newNode);
        }
        private void RemoveParser(EmailUrlParserConfiguration settings)
        {
            var parser = _parsers[settings];

            parser.Stop();
            parser.ImapEvent -= ParserOnImapEvent;
            _parsers.Remove(settings);
            var nodeToRemove = treeViewEmails.Nodes.Find(settings.Username, false).First();

            treeViewEmails.Nodes.Remove(nodeToRemove);
        }
示例#3
0
        public AddEditForm(EmailUrlParserConfiguration settings)
        {
            InitializeComponent();
            this.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);
            this.Text = "Edit";

            textBoxUsername.Text     = settings.Username;
            textBoxPassword.Text     = settings.Password;
            textBoxImapHostName.Text = settings.ServerHostName;
            textBoxPort.Text         = settings.Port.ToString();
            checkBoxSsl.Checked      = settings.IsSsl;
        }
        private void EditSetting(EmailUrlParserConfiguration settings)
        {
            var addEditDialog = new AddEditForm(settings);

            addEditDialog.ShowDialog(this);
            if (addEditDialog.DialogResult == DialogResult.OK && addEditDialog.Settings != null)
            {
                RemoveParser(settings);
                AddParser(addEditDialog.Settings);
            }
            addEditDialog.Dispose();
        }
示例#5
0
        private void buttonSave_Click(object sender, EventArgs e)
        {
            int port;

            if (IsValidEmail(textBoxUsername.Text) && Int32.TryParse(textBoxPort.Text, out port))
            {
                Settings = new EmailUrlParserConfiguration()
                {
                    Username       = textBoxUsername.Text,
                    Password       = textBoxPassword.Text,
                    ServerHostName = textBoxImapHostName.Text,
                    Port           = port,
                    IsSsl          = checkBoxSsl.Checked
                };

                this.DialogResult = DialogResult.OK;
            }
            else
            {
                MessageBox.Show("Invalid email address or port.");
            }
        }