using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Navigation; namespace MyTests.Pages { public partial class RegistrationPage : Page { public RegistrationPage() { InitializeComponent(); } private void RegButton_Click(object sender, RoutedEventArgs e) { try { if (!Functions.IsValidEmail(EmailBox.Text)) // Проверка на правильность ввода электронной почты new ErrorWindow("Email введен неверно.").Show(); // Вывод ошибки else if (Functions.IsEmailAlreadyTaken(EmailBox.Text)) // Проверка на свободность электронной почты new ErrorWindow("Данный email уже используется.").Show();// Вывод ошибки else if (!Functions.IsValidLength(LogBox.Text.Trim())) // Проверка на минтимальную длину логина new ErrorWindow("Поле «Логин» должно содержать не менее 5 символов.").Show();// Вывод ошибки else if (!Functions.IsValidLength(PassBox.Password.Trim())) // Проверка на минтимальную длину пароля new ErrorWindow("Поле «Пароль» должно содержать не менее 5 символов.").Show();// Вывод ошибки else if (!Functions.IsLogEqualPass(LogBox.Text, PassBox.Password)) // Проверка на различие логина и пароля new ErrorWindow(" Поля «Логин» и «Пароль» не должны быть равны").Show();// Вывод ошибки else if (Functions.IsLoginAlreadyTaken(LogBox.Text)) // Проверка на свободность логина new ErrorWindow("Данный логин уже занят").Show();// Вывод ошибки else // Иначе, т.е если все проверки пройдены { string[] fio = new string[3]; // Создание массива из 3 элементов fio = FIOBox.Text.Split(' '); // Заполнение массива ФИО пользователя с разделением по пробелу . т.е Фамилия - [0], Имя - [1], Отчество - [2] Users newUser = new Users() // Создание пользователя { IdUser = cdb.db.Users.Select(p => p.IdUser).DefaultIfEmpty(0).Max() + 1, // id = максимальный id +1 Login = LogBox.Text, Password = Functions.EncryptPassword(PassBox.Password), // Шифрование пароля Email = EmailBox.Text, Post = cdb.db.Users.Count() == 0 ? "Преподаватель" : "Пользователь", // Если пользователей 0, то первому выдаются права Преподавателя Surname = fio[0], Name = fio[1], Patronymic = fio[2] }; cdb.db.Users.Add(newUser); // Добавление в базу данных cdb.db.SaveChanges(); // Сохранение new ErrorWindow("Успешная регистрация").ShowDialog(); // Вывод диалогового окна NavigationService.Navigate(new LoginPage()); // Переход на страницу входа } } catch { new ErrorWindow("Ошибка.").ShowDialog(); // Вывод ошибки } } private void BackButton_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new LoginPage()); // Переход на страницу входа } } }