RegistrationViewModel.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. using RKISPATTERN.Command;
  2. using RKISPATTERN.Helpers;
  3. using RKISPATTERN.Models;
  4. using RKISPATTERN.View;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.ComponentModel;
  8. using System.Linq;
  9. using System.Runtime.CompilerServices;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. using System.Windows;
  13. using System.Windows.Controls;
  14. namespace RKISPATTERN.ViewModels
  15. {
  16. class RegistrationViewModel : INotifyPropertyChanged
  17. {
  18. public event PropertyChangedEventHandler? PropertyChanged;
  19. public void OnPropertyChanged([CallerMemberName] string prop = "")
  20. {
  21. if (PropertyChanged != null)
  22. PropertyChanged(this, new PropertyChangedEventArgs(prop));
  23. }
  24. string currentUserLogin;
  25. public string CurrentUserLogin
  26. {
  27. get { return currentUserLogin; }
  28. set
  29. {
  30. currentUserLogin = value;
  31. OnPropertyChanged("CurrentUserLogin");
  32. }
  33. }
  34. string currentUserFirstName;
  35. public string CurrentUserFirstName
  36. {
  37. get { return currentUserFirstName; }
  38. set
  39. {
  40. currentUserFirstName = value;
  41. OnPropertyChanged("CurrentUserFirstName");
  42. }
  43. }
  44. string currentUserSecondName;
  45. public string CurrentUserSecondName
  46. {
  47. get { return currentUserSecondName; }
  48. set
  49. {
  50. currentUserSecondName = value;
  51. OnPropertyChanged("CurrentUserSecondName");
  52. }
  53. }
  54. string currentUserThirdName;
  55. public string CurrentUserThirdName
  56. {
  57. get { return currentUserThirdName; }
  58. set
  59. {
  60. currentUserThirdName = value;
  61. OnPropertyChanged("CurrentUserThirdName");
  62. }
  63. }
  64. string currentUserPhone;
  65. public string CurrentUserPhone
  66. {
  67. get { return currentUserPhone; }
  68. set
  69. {
  70. currentUserPhone = value;
  71. OnPropertyChanged("CurrentUserPhone");
  72. }
  73. }
  74. private RelayCommand showAuthorizathionWindow;
  75. public RelayCommand ShowAuthorizathionWindow
  76. {
  77. get
  78. {
  79. return showAuthorizathionWindow ??
  80. (showAuthorizathionWindow = new RelayCommand(obj =>
  81. {
  82. MainWindow reg = new MainWindow();
  83. reg.Show();
  84. Helper.CloseWindow<Registration>();
  85. }));
  86. }
  87. }
  88. private RelayCommand addNewUser;
  89. public RelayCommand AddNewUser
  90. {
  91. get
  92. {
  93. return addNewUser ??
  94. (addNewUser = new RelayCommand(obj =>
  95. {
  96. PasswordBox pb = (PasswordBox)obj;
  97. if (Helper.CheckLoginPass(currentUserLogin) &&
  98. Helper.CheckLoginPass(pb.Password) &&
  99. Helper.CheckPhone(currentUserPhone)&&
  100. Helper.CheckName(currentUserFirstName)&&
  101. Helper.CheckName(currentUserSecondName)&&
  102. Helper.CheckName(currentUserThirdName))
  103. {
  104. using (DBContext db = new DBContext())
  105. {
  106. int maxId;
  107. if (db.User.Count() > 0)
  108. {
  109. maxId = db.User.Max(u => u.Id);
  110. }
  111. else
  112. {
  113. maxId = 1;
  114. }
  115. User newUser = new User(maxId+1, currentUserFirstName, currentUserSecondName, currentUserThirdName, currentUserLogin, pb.Password, currentUserPhone);
  116. db.User.Add(newUser);
  117. db.SaveChanges();
  118. MainWindow reg = new MainWindow();
  119. reg.Show();
  120. Helper.CloseWindow<Registration>();
  121. MessageBox.Show("Пользователь создан");
  122. }
  123. }
  124. else
  125. MessageBox.Show("Данные введены неверно!");
  126. }));
  127. }
  128. }
  129. }
  130. }