RegistrationPage.xaml.cs 2.7 KB

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