using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace Детский_сад
{
///
/// Логика взаимодействия для AccountChange.xaml
///
public partial class AccountChange : Window
{
Employees User;
public AccountChange(Employees user)
{
InitializeComponent();
User = user;
tboxLogin.Text = user.Login_user;
}
private void btnSave_Click(object sender, RoutedEventArgs e)
{
if (checkData())
{
User.Login_user = tboxLogin.Text;
User.Password_user = tboxPassword.Text.GetHashCode();
try
{
Base.KE.SaveChanges();
Close();
MessageBox.Show("Данные успешно сохранены", "Учётная запись", MessageBoxButton.OK, MessageBoxImage.Information);
}
catch
{
MessageBox.Show("Возникла ошибка! Данные не были обновлены", "Учётная запись", MessageBoxButton.OK, MessageBoxImage.Information);
}
}
}
private bool checkData()
{
Employees employees = Base.KE.Employees.FirstOrDefault(x => x.Login_user == tboxLogin.Text);
if (tboxLogin.Text.Length == 0)
{
MessageBox.Show("Введите логин", "Учётная запись", MessageBoxButton.OK, MessageBoxImage.Information);
return false;
}
else if (employees != null && User.Id_employee != employees.Id_employee)
{
MessageBox.Show("Пользователь с таким логином уже зарегистрирован", "Учётная запись", MessageBoxButton.OK, MessageBoxImage.Information);
return false;
}
else if (!CheckPassword(tboxPassword.Text))
{
return false;
}
else if (tboxPassword.Text != tboxRepeatPassword.Text)
{
MessageBox.Show("Пароли не совпадают", "Учётная запись", MessageBoxButton.OK, MessageBoxImage.Information);
return false;
}
return true;
}
///
/// Валидация пароля
///
/// Пароль
/// Валидация прошла успешно - true, иначе - false
private bool CheckPassword(string s)
{
if (tboxPassword.Text.Length < 8)
{
MessageBox.Show("Пароль должен содержать минимум 8 символов", "Учётная запись", MessageBoxButton.OK, MessageBoxImage.Information);
return false;
}
else if (!Regex.IsMatch(s, "[A-Z]"))
{
MessageBox.Show("Пароль должен содержать минимум 1 заглавный латинский символ", "Учётная запись", MessageBoxButton.OK, MessageBoxImage.Information);
return false;
}
else if (!Regex.IsMatch(s, "[a-z]+.*[a-z]+.*[a-z]+"))
{
MessageBox.Show("Пароль должен содержать минимум 3 строчных латинских символов", "Учётная запись", MessageBoxButton.OK, MessageBoxImage.Information);
return false;
}
else if (!Regex.IsMatch(s, @"\d+.*\d"))
{
MessageBox.Show("Пароль должен содержать минимум 2 цифры", "Учётная запись", MessageBoxButton.OK, MessageBoxImage.Information);
return false;
}
else if (!Regex.IsMatch(s, @"\W"))
{
MessageBox.Show("Пароль должен содержать минимум 1 специальный символ", "Учётная запись", MessageBoxButton.OK, MessageBoxImage.Information);
return false;
}
return true;
}
}
}