123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- 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.Navigation;
- using System.Windows.Shapes;
- using System.Text.RegularExpressions;
- namespace Детский_сад
- {
- /// <summary>
- /// Логика взаимодействия для Reg.xaml
- /// </summary>
- public partial class Reg : Page
- {
- public Reg()
- {
- InitializeComponent();
- cbGender.ItemsSource = Base.KE.Genders.ToList();
- cbGender.SelectedValuePath = "Id_gender";
- cbGender.DisplayMemberPath = "Gender";
- cbPositions.ItemsSource = Base.KE.Positions.ToList();
- cbPositions.SelectedValuePath = "Id_position";
- cbPositions.DisplayMemberPath = "Position";
- dpBirthdate.DisplayDateStart = new DateTime(DateTime.Now.Year - 70, 1, 1);
- dpBirthdate.DisplayDateEnd = new DateTime(DateTime.Now.Year - 16, DateTime.Now.Month, DateTime.Now.Day);
- }
- private void btnReg_Click(object sender, RoutedEventArgs e)
- {
- if (checkData())
- {
- Employees emp = new Employees()
- {
- Surname = tboxSurname.Text,
- Names = tboxName.Text,
- Patronymic = tboxPatronymic.Text,
- Birthdate = dpBirthdate.SelectedDate.Value,
- Id_gender = cbGender.SelectedIndex + 1,
- Id_position = cbPositions.SelectedIndex + 1,
- Street = tboxStreet.Text,
- Building = tboxBuilding.Text,
- Phone = tboxPhone.Text,
- Login_user = tboxLogin.Text,
- Password_user = tboxPassword.Text.GetHashCode(),
- Id_role = 2
- };
- try
- {
- Base.KE.Employees.Add(emp);
- Base.KE.SaveChanges();
- MessageBox.Show("Пользователь успешно зарегистрирован", "Регистрация", MessageBoxButton.OK, MessageBoxImage.Information);
- }
- catch
- {
- MessageBox.Show("Возникла ошибка! Данные не были занесены в базу", "Регистрация", MessageBoxButton.OK, MessageBoxImage.Information);
- }
- }
- }
- private bool checkData()
- {
- Employees emp = Base.KE.Employees.FirstOrDefault(x => x.Login_user == tboxLogin.Text);
- if (!Regex.IsMatch(tboxSurname.Text, @"^[А-Я][а-я]+$"))
- {
- MessageBox.Show("Фамилия должна начинаться с заглавной буквы и содержать только русские буквы", "Регистрация", MessageBoxButton.OK, MessageBoxImage.Information);
- return false;
- }
- else if (!Regex.IsMatch(tboxName.Text, @"^[А-Я][а-я]+$"))
- {
- MessageBox.Show("Имя должно начинаться с заглавной буквы и содержать только русские буквы", "Регистрация", MessageBoxButton.OK, MessageBoxImage.Information);
- return false;
- }
- else if (!Regex.IsMatch(tboxPatronymic.Text, @"^[А-Я][а-я]+$"))
- {
- MessageBox.Show("Отчество должно начинаться с заглавной буквы и содержать только русские буквы", "Регистрация", MessageBoxButton.OK, MessageBoxImage.Information);
- return false;
- }
- else if (dpBirthdate.SelectedDate.Value == DateTime.Today)
- {
- MessageBox.Show("Выберите дату рождения", "Регистрация", MessageBoxButton.OK, MessageBoxImage.Information);
- return false;
- }
- else if (cbGender.SelectedIndex == -1)
- {
- MessageBox.Show("Выберите пол", "Регистрация", MessageBoxButton.OK, MessageBoxImage.Information);
- return false;
- }
- else if (cbPositions.SelectedIndex == -1)
- {
- MessageBox.Show("Выберите должность", "Регистрация", MessageBoxButton.OK, MessageBoxImage.Information);
- return false;
- }
- else if (!Regex.IsMatch(tboxStreet.Text, @"^[А-Я][а-я]+$"))
- {
- MessageBox.Show("Улица должна начинаться с заглавной буквы и содержать только русские буквы", "Регистрация", MessageBoxButton.OK, MessageBoxImage.Information);
- return false;
- }
- else if (tboxBuilding.Text.Length == 0)
- {
- MessageBox.Show("Введите строение", "Регистрация", MessageBoxButton.OK, MessageBoxImage.Information);
- return false;
- }
- else if (!Regex.IsMatch(tboxPhone.Text, @"^\+7 9\d{2} \d{3}-\d{2}-\d{2}$"))
- {
- MessageBox.Show("Номер телефона должен соответствовать следующей маске: \"+7 9XX XXX-XX-XX\", где X - любая цифра", "Регистрация", MessageBoxButton.OK, MessageBoxImage.Information);
- return false;
- }
- else if (tboxLogin.Text.Length == 0)
- {
- MessageBox.Show("Введите логин", "Регистрация", MessageBoxButton.OK, MessageBoxImage.Information);
- return false;
- }
- else if (emp != null)
- {
- MessageBox.Show("Пользователь с таким логином уже зарегистрирован", "Регистрация", MessageBoxButton.OK, MessageBoxImage.Information);
- return false;
- }
- else if (!CheckPassword(tboxPassword.Text))
- {
- return false;
- }
- return true;
- }
- /// <summary>
- /// Валидация пароля
- /// </summary>
- /// <param name="s">Пароль</param>
- /// <returns>Валидация прошла успешно - true, иначе - false</returns>
- 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;
- }
- }
- }
|