RegistrationWindow.axaml.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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 QualTask.Models;
  8. namespace QualTask;
  9. public partial class RegistrationWindow : Window
  10. {
  11. public RegistrationWindow()
  12. {
  13. InitializeComponent();
  14. RoleComboBox.SelectedIndex = 1;
  15. }
  16. private void RegistrationButton_OnClick(object? sender, RoutedEventArgs e)
  17. {
  18. // Получаем данные из TextBox'ов
  19. string fname = FNameTextBox.Text;
  20. string lname = LNameTextBox.Text;
  21. string login = LoginTextBox.Text;
  22. string password = PasswordTextBox.Text;
  23. string role = RoleComboBox.SelectedItem.ToString();
  24. // Проверяем что поля не пустые
  25. if (String.IsNullOrWhiteSpace(fname) || String.IsNullOrWhiteSpace(lname) || String.IsNullOrWhiteSpace(login)
  26. || String.IsNullOrWhiteSpace(password) || String.IsNullOrWhiteSpace(role))
  27. {
  28. ErrorTextBlock.IsVisible = true;
  29. ErrorTextBlock.Text = "Все поля должны быть заполнены!";
  30. return;
  31. }
  32. // Получаем id роли
  33. int role_id;
  34. if (role == "Администратор")
  35. {
  36. role_id = 1;
  37. }
  38. else
  39. {
  40. role_id = 2;
  41. }
  42. // Проверяем что пользователя не существует
  43. if (DbService.GetContext().Users.Where(u => u.Login == login).Count() != 0)
  44. {
  45. ErrorTextBlock.IsVisible = true;
  46. ErrorTextBlock.Text = "Такой пользователь уже существует!";
  47. return;
  48. }
  49. // Добавляем пользователя
  50. User user = new User();
  51. user.Fname = fname;
  52. user.Lname = lname;
  53. user.Login = login;
  54. user.Password = password;
  55. user.Role = role_id;
  56. DbService.GetContext().Users.Add(user);
  57. DbService.GetContext().SaveChanges();
  58. ErrorTextBlock.IsVisible = false;
  59. }
  60. private void BackButton_OnClick(object? sender, RoutedEventArgs e)
  61. {
  62. AuthWindow wnd = new AuthWindow();
  63. wnd.Show();
  64. Close();
  65. }
  66. }