Regist.xaml.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Data.Entity;
  5. using System.Linq;
  6. using System.Runtime.Remoting.Metadata.W3cXsd2001;
  7. using System.Text;
  8. using System.Text.RegularExpressions;
  9. using System.Threading.Tasks;
  10. using System.Windows;
  11. using System.Windows.Controls;
  12. using System.Windows.Data;
  13. using System.Windows.Documents;
  14. using System.Windows.Input;
  15. using System.Windows.Media;
  16. using System.Windows.Media.Imaging;
  17. using System.Windows.Navigation;
  18. using System.Windows.Shapes;
  19. using System.Xml.Linq;
  20. namespace Prakticheskaya5_Venediktov
  21. {
  22. /// <summary>
  23. /// Логика взаимодействия для Page2.xaml
  24. /// </summary>
  25. public partial class Registr : Page
  26. {
  27. public Registr()
  28. {
  29. InitializeComponent();
  30. Gender.ItemsSource = Base.database.Pol.ToList();
  31. Gender.SelectedValuePath = "id";
  32. Gender.DisplayMemberPath = "Gender";
  33. }
  34. private void Button_Click(object sender, RoutedEventArgs e)
  35. {
  36. bool flag = true;
  37. Regex check1 = new Regex("^(?=.*[0-9]){2,}");
  38. Regex check2 = new Regex("(?=.*[a-z]){3,}");
  39. Regex check3 = new Regex("(?=.*[A-Z])");
  40. Regex check4 = new Regex("(?=.*[!@#$%^&*()=+_])");
  41. Regex check5 = new Regex("[0-9a-zA-Z!@#$%^&*()=+_]{8,}");
  42. while (flag)
  43. {
  44. if (Surname.Text != null && Name.Text != null && Login != null && Password.Password != null && Gender.SelectedItem != null && BrthDate.SelectedDate != null)
  45. {
  46. if (check1.IsMatch(Password.Password) && check2.IsMatch(Password.Password) && check3.IsMatch(Password.Password) && check4.IsMatch(Password.Password) && check5.IsMatch(Password.Password))
  47. {
  48. Users newuser = new Users()
  49. {
  50. Name = Name.Text,
  51. Surname = Surname.Text,
  52. Birthday = (DateTime)BrthDate.SelectedDate,
  53. Login = Login.Text,
  54. Password = Password.Password.GetHashCode(),
  55. ID_Gender = ((Pol)Gender.SelectedItem).ID_Gender,
  56. ID_Role = Role.SelectedIndex +1,
  57. };
  58. Users checkuser = Base.database.Users.FirstOrDefault(x => x.Login == Login.Text);
  59. if (checkuser != null)
  60. {
  61. MessageBox.Show("Этот логин уже занят");
  62. flag = false;
  63. }
  64. else
  65. {
  66. Base.database.Users.Add(newuser);
  67. Base.database.SaveChanges();
  68. MessageBox.Show("Регистрация успешно завершена");
  69. Class1.frm.Navigate(new MainWindow());
  70. flag = false;
  71. }
  72. }
  73. else if (check1.IsMatch(Password.Password) == false)
  74. {
  75. MessageBox.Show("В пароле должно быть не менее 2 цифр!");
  76. flag = false;
  77. }
  78. else if (check2.IsMatch(Password.Password) == false)
  79. {
  80. MessageBox.Show("В пароле должно быть не менее 3 строчных латинских букв!");
  81. flag = false;
  82. }
  83. else if (check3.IsMatch(Password.Password) == false)
  84. {
  85. MessageBox.Show("В пароле должно быть не менее 1 заглавной латинской буквы!");
  86. flag = false;
  87. }
  88. else if (check4.IsMatch(Password.Password) == false)
  89. {
  90. MessageBox.Show("В пароле должно быть не менее 1 специального символа!");
  91. flag = false;
  92. }
  93. else if (check5.IsMatch(Password.Password) == false)
  94. {
  95. MessageBox.Show("Длина пароля должна составлять не менее 8 символов!");
  96. flag = false;
  97. }
  98. }
  99. else
  100. {
  101. MessageBox.Show("Не все данные введены");
  102. flag = false;
  103. }
  104. }
  105. }
  106. }
  107. }