RegWindow.axaml.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using System;
  2. using System.Linq;
  3. using Avalonia;
  4. using Avalonia.Controls;
  5. using Avalonia.Interactivity;
  6. using Avalonia.Markup.Xaml;
  7. using exam.Models;
  8. namespace exam;
  9. public partial class RegWindow : Window
  10. {
  11. public RegWindow()
  12. {
  13. InitializeComponent();
  14. CountryComboBox.SelectedIndex = 1;
  15. }
  16. public static int Reg(string lname, string fname, string login, string password)
  17. {
  18. if (String.IsNullOrWhiteSpace(lname) || String.IsNullOrWhiteSpace(fname) || String.IsNullOrWhiteSpace(login)
  19. || String.IsNullOrWhiteSpace(password))
  20. {
  21. return 1;
  22. }
  23. int countUsers = dbService.GetContext().Users.Where(u=> u.Loginuser == login).Count();
  24. if (countUsers != 0)
  25. {
  26. return 2;
  27. }
  28. return 0;
  29. }
  30. private void RegButton_OnClick(object? sender, RoutedEventArgs e)
  31. {
  32. // получение данных, введённых пользователем
  33. string lname = LastNameTextBox.Text;
  34. string fname = FirstNameTextBox.Text;
  35. string login = LoginTextBox.Text;
  36. string password = PasswordTextBox.Text;
  37. int countryIndex = CountryComboBox.SelectedIndex;
  38. int errorCode = Reg(lname, fname, login, password);
  39. // проверка заполненности полей
  40. if (errorCode == 1)
  41. {
  42. ErrorTextBlock.IsVisible = true;
  43. ErrorTextBlock.Text = "все поля должны быть заполнены";
  44. return;
  45. }
  46. // получение id страны
  47. int idCountry;
  48. if (countryIndex == 0)
  49. idCountry = 1;
  50. else
  51. idCountry = 2;
  52. // проверка существования пользователя
  53. if (errorCode == 2)
  54. {
  55. ErrorTextBlock.IsVisible = true;
  56. ErrorTextBlock.Text = "введите другой логин";
  57. return;
  58. }
  59. // добавление пользователя
  60. User user = new User();
  61. user.Lastname = lname;
  62. user.Firstname = fname;
  63. user.Loginuser = login;
  64. user.Passworsuser = password;
  65. user.Idcountry = idCountry;
  66. dbService.GetContext().Users.Add(user);
  67. dbService.GetContext().SaveChanges();
  68. ErrorTextBlock.IsVisible = false;
  69. UsersWindow usersWindow = new UsersWindow();
  70. usersWindow.Show();
  71. Close();
  72. }
  73. private void BackButton_OnClick(object? sender, RoutedEventArgs e)
  74. {
  75. AuthWindow authWindow = new AuthWindow();
  76. authWindow.Show();
  77. Close();
  78. }
  79. }