WindowReg.xaml.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. // Подключаемые библиотеки
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Text.RegularExpressions;
  7. using System.Threading.Tasks;
  8. using System.Windows;
  9. using System.Windows.Controls;
  10. using System.Windows.Data;
  11. using System.Windows.Documents;
  12. using System.Windows.Input;
  13. using System.Windows.Media;
  14. using System.Windows.Media.Imaging;
  15. using System.Windows.Shapes;
  16. namespace Met_Fam
  17. {
  18. /// <summary>
  19. /// Логика взаимодействия для WindowReg.xaml
  20. /// </summary>
  21. public partial class WindowReg : Window
  22. {
  23. Users users = new Users();
  24. public User buffer;
  25. public WindowReg()
  26. {
  27. InitializeComponent();
  28. }
  29. // Кнопка регистрации нового пользователя
  30. private void Button_Click(object sender, RoutedEventArgs e)
  31. {
  32. List<User> code = DataBase.BaseModel.User.ToList();
  33. var lastItem = code.Last();
  34. User user = new User()
  35. {
  36. ID_User = lastItem.ID_User + 1,
  37. Surname_User = txtSuName.Text,
  38. Name_User = txtName.Text,
  39. Login_User = txtLogin.Text,
  40. Password_User = txtPass.Password,
  41. Phone_User = txtPhon.Text,
  42. Address = txtAdres.Text,
  43. ID_Role = 2,
  44. };
  45. // Регулярные выражения для ввода данных
  46. Regex checkSurName = new Regex(@"^[А-я]+$");
  47. Regex checkName = new Regex(@"^[А-я]+$");
  48. Regex checkLogin = new Regex(@"\b\w{2,10}\b");
  49. Regex checkPassword = new Regex(@"\b\w{2,10}\b");
  50. Regex checkNumberPhone = new Regex("^((\\+?7|8))\\d{10}$");
  51. // Проверка на соответствие регулярным выражениям
  52. if (((!checkName.IsMatch(txtName.Text)) || (!checkSurName.IsMatch(txtSuName.Text)) || (!checkLogin.IsMatch(txtLogin.Text)) || (!checkPassword.IsMatch(txtPass.Password)) || (!checkNumberPhone.IsMatch(txtPhon.Text))))
  53. {
  54. MessageBox.Show("Ошибка ввода");
  55. }
  56. // Проверка на повторение данных
  57. else
  58. {
  59. bool u = true;
  60. foreach (var item in code)
  61. {
  62. if (txtLogin.Text == item.Login_User)
  63. {
  64. u = false;
  65. MessageBox.Show("Такой пользователь уже существует");
  66. break;
  67. }
  68. }
  69. if (u)
  70. {
  71. // Добавление нового пользователя, сохранение изменений в БД, переход в магазин
  72. try
  73. {
  74. DataBase.BaseModel.User.Add(user);
  75. DataBase.BaseModel.SaveChanges();
  76. DataBase.BaseModel = new MFSystemEntities();
  77. new WindowShop(user).Show();
  78. this.Close();
  79. }
  80. catch (Exception ex)
  81. {
  82. MessageBox.Show(ex.Message);
  83. }
  84. }
  85. }
  86. }
  87. }
  88. }