private void RegisterControlsEvents()
        {
            passTextBox.TextChanged += (sender, args) => capsLockAlertLabel.Text =
                IsKeyLocked(Keys.CapsLock) ? "The Caps Lock Key is ON!" : string.Empty;

            messagesListView.Click += (sender, args) =>
            {
                int        selectedIndex = ((ListView)sender).SelectedItems[0].Index;
                MessageDTO dto           = _messageDTOs[selectedIndex];

                pop3FromTextBox.Text           = dto.FromEmail;
                pop3SenderFullNameTextBox.Text = dto.SenderInfoFullName;
                pop3SubjectTextBox.Text        = dto.Subject;
                pop3BodyRichTextBox.Text       = dto.BodyPlainText;
            };

            deleteEmailButton.Click += (sender, args) =>
            {
                Task.Run(() =>
                {
                    var mailAgentClient = new EmailClient(pop3LoginTextBox.Text, pop3PassTextBox.Text);

                    string messageUID = default(string);

                    if (messagesListView.InvokeRequired)
                    {
                        messagesListView.Invoke((MethodInvoker)(() =>
                        {
                            if (messagesListView.Items.Count == 0)
                            {
                                return;
                            }

                            messageUID = messagesListView
                                         .Items[messagesListView.SelectedIndices[0]]
                                         .SubItems[2]
                                         .Text;
                        }));
                    }
                    else
                    {
                        if (messagesListView.Items.Count == 0)
                        {
                            return;
                        }

                        messageUID = messagesListView
                                     .Items[messagesListView.SelectedIndices[0]]
                                     .SubItems[2]
                                     .Text;
                    }

                    mailAgentClient.DeleteMessageById(messageUID);

                    if (messagesListView.Items.Count > 0)
                    {
                        messagesListView.Items.RemoveAt(messagesListView.SelectedIndices[0]);
                    }
                });
            };

            attachImageButton.Click += (sender, args) =>
            {
                using (OpenFileDialog openFileDialog = new OpenFileDialog())
                {
                    openFileDialog.Filter = Resources.ImageExtensionsFilter;

                    _imagePath = openFileDialog.ShowDialog() == DialogResult.OK
                        ? openFileDialog.FileName
                        : string.Empty;
                }
            };

            sendButton.Click += (sender, args) =>
            {
                MessageDomainModel messageModel = new MessageDomainModel
                {
                    FromEmail = fromTextBox.Text,
                    ToEmail   = toTextBox.Text,
                    Subject   = subjectTextBox.Text,

                    BodyHtmlText = containsHtmlCheckBox.Checked
                        ? bodyRichTextBox.Text
                        : string.Empty,

                    BodyPlainText = containsHtmlCheckBox.Checked
                        ? Uglify.HtmlToText(bodyRichTextBox.Text).Code
                        : bodyRichTextBox.Text,

                    SenderInfoFullName    = senderFullNameTextBox.Text,
                    RecipientInfoFullName = recipientFullNameTextBox.Text,
                    ImagePath             = _imagePath
                };

                _imagePath = default(string);

                var mailAgentClient = new EmailClient(loginTextBox.Text, passTextBox.Text);

                try
                {
                    Task.Run(() => mailAgentClient.Send(messageModel));
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e);
                    MessageBox.Show("Some errors occurred while sending your message. Sorry about that.");
                }
            };
            authenticationButton.Click += (sender, args) =>
            {
                Task.Run(() =>
                {
                    var mailAgentClient = new EmailClient(pop3LoginTextBox.Text, pop3PassTextBox.Text);
                    _messageDTOs        = mailAgentClient.GetAllMessages();

                    if (messagesListView.InvokeRequired)
                    {
                        messagesListView.Invoke((MethodInvoker)(() =>
                        {
                            messagesListView.BeginUpdate();

                            messagesListView.Items.Clear();
                            for (int i = 0; i < _messageDTOs.Count; i++)
                            {
                                var item = new ListViewItem($"{i + 1}");
                                item.SubItems.Add(_messageDTOs[i].Subject);
                                item.SubItems.Add(_messageDTOs[i].Id);
                                messagesListView.Items.Add(item);
                            }
                            messagesListView.EndUpdate();
                        }));
                    }
                    else
                    {
                        messagesListView.BeginUpdate();

                        messagesListView.Items.Clear();
                        for (int i = 0; i < _messageDTOs.Count; i++)
                        {
                            var item = new ListViewItem($"{i + 1}");
                            item.SubItems.Add(_messageDTOs[i].Subject);
                            item.SubItems.Add(_messageDTOs[i].Id);
                            messagesListView.Items.Add(item);
                        }
                        messagesListView.EndUpdate();
                    }
                });
            };

            viewAttachmentButton.Click += (sender, args) =>
            {
                Task.Run(() =>
                {
                    var mailAgentClient = new EmailClient(pop3LoginTextBox.Text, pop3PassTextBox.Text);
                    int selectedIndex   = default(int);
                    string messageUID   = default(string);

                    if (messagesListView.InvokeRequired)
                    {
                        messagesListView.Invoke((MethodInvoker)(() =>
                        {
                            selectedIndex = messagesListView.SelectedItems[0].Index;
                            messageUID = messagesListView
                                         .Items[selectedIndex]
                                         .SubItems[2]
                                         .Text;
                        }));
                    }
                    else
                    {
                        selectedIndex = messagesListView.SelectedItems[0].Index;
                        messageUID    = messagesListView
                                        .Items[selectedIndex]
                                        .SubItems[2]
                                        .Text;
                    }

                    try
                    {
                        string imagePath = mailAgentClient.GetImageAttachmentByMessageUID(messageUID);
                        Process.Start(imagePath);
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("There is no attachment");
                    }
                });
            };
        }