/// <summary> /// Подтверждение кода /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CheckCode_Click(object sender, RoutedEventArgs e) { if (codeTextBox.Text.Trim() == secretCode) { AnimationHelper.StartAnimation(this, "applyToChange", delegate { }); } else { ContexTrayMenu.ShowMessage("Ошибка!", "Неправильный код!", System.Windows.Forms.ToolTipIcon.Error); } }
/// <summary> /// Отправить код на почту /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SendCodeToEmail_Click(object sender, RoutedEventArgs e) { if (!InternetState.CheckForInternetConnection()) { ContexTrayMenu.ShowMessage("Ошибка!", "Отсутствует подключение к интернету!", System.Windows.Forms.ToolTipIcon.Error); return; } //Если поле почтового ящика не пусто и почтовый ящик "валидный" if (!String.IsNullOrEmpty(emailTextBox.Text) && EmailChecker.IsValidEmail(emailTextBox.Text)) { //Получаем ссылку на пользователя employee = EmployeeService.UsersCollection.Where(x => x.Email == emailTextBox.Text).FirstOrDefault(); //если пользователь есть в базе if (employee != null) { //Генерируем секретный код secretCode = Randomizer.GetNumber(1, 10000); //Получаем введенный пользователем почтовый ящик String email = emailTextBox.Text.Trim(); //Отправляем сообщение на введенный пользователем почтовый ящик с секретный кодом Task.Run(() => { emailSender.Body = $"Код для восстановления пароля : {secretCode}"; emailSender.Subject = "Восстановление пароля"; emailSender.To = email; emailSender.Send(); }); //Запускаем анимацию, которая переводит нас на "страницу" подтверждения секретного кода AnimationHelper.StartAnimation(this, "EmailToCode", delegate { }); } else { ContexTrayMenu.ShowMessage("Ошибка!", "Пользователя с таким почтовым ящиком не существует!", System.Windows.Forms.ToolTipIcon.Error); } } else { ContexTrayMenu.ShowMessage("Ошибка!", "Поле не может быть пустым или введенный текст не ялвяется почтовым ящиком!", System.Windows.Forms.ToolTipIcon.Error); } }
/// <summary> /// Открыть "Уведомления" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Notify_Click(object sender, RoutedEventArgs e) { if (notificationPanel.Visibility == Visibility.Collapsed) { AnimationHelper.StartAnimation(this, "showNotifications", (x, y) => { BlurEffect effect = new BlurEffect() { Radius = 3, RenderingBias = RenderingBias.Quality }; mainFrame.Effect = effect; }); } else { AnimationHelper.StartAnimation(this, "hideNotifications", (x, y) => { mainFrame.Effect = null; }); } }
/// <summary> /// Смена пароля /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ChangePassword_Click(object sender, RoutedEventArgs e) { if (passwordbox1.Password == passwordbox2.Password) { using (var connection = new MySqlConnection(ConnectionDB.Connection)) { employee.Password = HashCode.GenerateHash(passwordbox2.Password); var query = $"UPDATE Employers SET Password = '******' WHERE ID = {employee.ID}"; Task.Run(() => { connection.Open(); new MySqlCommand(query, connection).ExecuteNonQuery(); //Обновляем коллекцию пользователей EmployeeService.UsersCollection.Where(user => user.ID == employee.ID).FirstOrDefault().Update(employee); }); var loginPage = new LoginPage(); loginPage.Loaded += delegate { AnimationHelper.StartAnimation(loginPage, "loadingPage", delegate { }); }; (Application.Current.MainWindow as MainWindow).mainFrame.Content = loginPage; ContexTrayMenu.ShowMessage("Информация!", "Пароль был успешно изменен!", System.Windows.Forms.ToolTipIcon.Info); } } else { ContexTrayMenu.ShowMessage("Ошибка!", "Пароли должны совпадать!", System.Windows.Forms.ToolTipIcon.Error); } }