RegistrationPage.xaml.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System.Linq;
  2. using System.Windows;
  3. using System.Windows.Controls;
  4. using System.Windows.Navigation;
  5. namespace MyTests.Pages
  6. {
  7. public partial class RegistrationPage : Page
  8. {
  9. public RegistrationPage()
  10. {
  11. InitializeComponent();
  12. }
  13. private void RegButton_Click(object sender, RoutedEventArgs e)
  14. {
  15. try
  16. {
  17. if (!Functions.IsValidEmail(EmailBox.Text))
  18. new ErrorWindow("Email введен неверно.").Show();
  19. else if (Functions.IsEmailAlreadyTaken(EmailBox.Text))
  20. new ErrorWindow("Данный email уже используется.").Show();
  21. else if (!Functions.IsValidLength(LogBox.Text.Trim()))
  22. new ErrorWindow("Поле «Логин» должно содержать не менее 5 символов.").Show();
  23. else if (!Functions.IsValidLength(PassBox.Password.Trim()))
  24. new ErrorWindow("Поле «Пароль» должно содержать не менее 5 символов.").Show();
  25. else if (!Functions.IsLogEqualPass(LogBox.Text, PassBox.Password))
  26. new ErrorWindow(" Поля «Логин» и «Пароль» не должны быть равны").Show();
  27. else if (Functions.IsLoginAlreadyTaken(LogBox.Text))
  28. new ErrorWindow("Данный логин уже занят").Show();
  29. else
  30. {
  31. string[] fio = new string[3];
  32. fio = FIOBox.Text.Split(' ');
  33. Users newUser = new Users()
  34. {
  35. IdUser = cdb.db.Users.Select(p => p.IdUser).DefaultIfEmpty(0).Max() + 1,
  36. Login = LogBox.Text,
  37. Password = Functions.EncryptPassword(PassBox.Password),
  38. Email = EmailBox.Text,
  39. Post = cdb.db.Users.Count() == 0 ? "Преподаватель" : "Пользователь",
  40. Surname = fio[0],
  41. Name = fio[1],
  42. Patronymic = fio[2]
  43. };
  44. cdb.db.Users.Add(newUser);
  45. cdb.db.SaveChanges();
  46. new ErrorWindow("Успешная регистрация").ShowDialog();
  47. }
  48. }
  49. catch
  50. {
  51. new ErrorWindow("Ошибка.").ShowDialog();
  52. }
  53. NavigationService.Navigate(new Pages.LoginPage());
  54. }
  55. private void BackButton_Click(object sender, RoutedEventArgs e)
  56. {
  57. NavigationService.Navigate(new Pages.LoginPage());
  58. }
  59. }
  60. }