private void removeServersBtn_Click(object sender, EventArgs e) { for (int i = 0; i < serversTable.Rows.Count; i++) { var selected = (bool)serversTable.Rows[i].Cells["selectedServerCol"].EditedFormattedValue; var domain = (string)serversTable.Rows[i].Cells["domainCol"].Value; if (selected) { DBServers.Remove(DBConnection.Connection, domain); } } updateServersWorker.RunWorkerAsync(); }
private void signInBtn_Click(object sender, EventArgs e) { var email = emailTxt.Text.Trim(' '); var password = passwordTxt.Text; ServerInfo mailServer; UserInfo user = new UserInfo(); int serverId; if (string.IsNullOrEmpty(email)) { checkInputPrv.SetError(emailTxt, "Заполните данное поле"); return; } if (string.IsNullOrEmpty(password)) { checkInputPrv.SetError(passwordTxt, "Заполните данное поле"); return; } if (!CheckHelper.IsValidEmail(email)) { checkInputPrv.SetError(emailTxt, "Неверный адрес"); return; } var domain = AuthHelper.GetDomain(emailTxt.Text); mailServer = DBServers.GetServerInfo(DBConnection.Connection, domain); // Проверка поддерживаемых серверов if (mailServer == null) // Если не нашли соответствующий сервер { MessageBox.Show("Данный сервер не поддерживается на данный момент"); return; } serverId = (int)mailServer.Id; // Проверка соединения если нашли поддерживаемый сервер if (isNetwork()) // Если есть соединение { try { using (var client = new SmtpClient()) { client.ServerCertificateValidationCallback = (s, c, h, ex) => true; client.Connect(mailServer.SmtpHost, (int)mailServer.SmtpPort, mailServer.IsSsl); client.Authenticate(emailTxt.Text, passwordTxt.Text); client.Disconnect(true); // Регистрируем или перезаписываем пользователя в базе данных user = DBUsers.AuthUser(DBConnection.Connection, email, password, serverId); } } catch (SQLiteException) { checkInputPrv.SetError(passwordTxt, "Неверный email или пароль"); return; } } else // Если всё-таки нет соединения { // Проверяем наличие данного пользователя в БД // Если есть, то авторизуемся локально и загружаем письма // Если нет, то нужно вывести ошибку if (DBUsers.GetLoginAccount(DBConnection.Connection, email, password, serverId) != null) { user = DBUsers.AuthUser(DBConnection.Connection, email, password, serverId); } else { checkInputPrv.SetError(emailTxt, "Нет соединения с интернетом, а также локальная " + "учётная запись с такими данными не существует"); return; } } passwordTxt.Text = ""; Hide(); new ClientForm(user).ShowDialog(this); Show(); }
private void updateServersWorker_DoWork(object sender, DoWorkEventArgs e) { e.Result = DBServers.GetServers(DBConnection.Connection); }
private void addServerBtn_Click(object sender, EventArgs e) { var domain = domainTxt.Text.Trim(' '); var smtpHost = smtpHostTxt.Text.Trim(' '); var smtpPort = smtpPortTxt.Text.Trim(' '); var imapHost = imapHostTxt.Text.Trim(' '); var imapPort = imapPortTxt.Text.Trim(' '); var pop3Host = pop3HostTxt.Text.Trim(' '); var pop3Port = pop3PortTxt.Text.Trim(' '); ServerInfo newServer; int smtp; int imap; int pop3; if (string.IsNullOrEmpty(domain)) { checkInputPrv.SetError(domainTxt, "Заполните данное поле"); return; } if (string.IsNullOrEmpty(smtpHost)) { checkInputPrv.SetError(smtpHostTxt, "Заполните данное поле"); return; } if (string.IsNullOrEmpty(smtpPort) | !int.TryParse(smtpPort, out smtp)) { checkInputPrv.SetError(smtpPortTxt, "Заполните данное поле корректно"); return; } if (string.IsNullOrEmpty(imapHost)) { checkInputPrv.SetError(imapHostTxt, "Заполните данное поле"); return; } if (string.IsNullOrEmpty(imapPort) | !int.TryParse(imapPort, out imap)) { checkInputPrv.SetError(imapPortTxt, "Заполните данное поле корректно"); return; } if (string.IsNullOrEmpty(pop3Host)) { checkInputPrv.SetError(pop3HostTxt, "Заполните данное поле"); return; } if (string.IsNullOrEmpty(pop3Port) | !int.TryParse(pop3Port, out pop3)) { checkInputPrv.SetError(pop3PortTxt, "Заполните данное поле корректно"); return; } newServer = new ServerInfo() { Domain = domain, SmtpHost = smtpHost, SmtpPort = smtp, ImapHost = imapHost, ImapPort = imap, Pop3Host = pop3Host, Pop3Port = pop3, IsSsl = sslCheck.Checked }; if (!DBServers.Add(DBConnection.Connection, newServer)) { checkInputPrv.SetError(domainTxt, "Сервер уже существует"); return; } updateServersWorker.RunWorkerAsync(); }