using RKISPATTERN.Command; using RKISPATTERN.Helpers; using RKISPATTERN.Models; using RKISPATTERN.View; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; namespace RKISPATTERN.ViewModels { class RegistrationViewModel : INotifyPropertyChanged { public event PropertyChangedEventHandler? PropertyChanged; public void OnPropertyChanged([CallerMemberName] string prop = "") { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(prop)); } string currentUserLogin; public string CurrentUserLogin { get { return currentUserLogin; } set { currentUserLogin = value; OnPropertyChanged("CurrentUserLogin"); } } string currentUserFirstName; public string CurrentUserFirstName { get { return currentUserFirstName; } set { currentUserFirstName = value; OnPropertyChanged("CurrentUserFirstName"); } } string currentUserSecondName; public string CurrentUserSecondName { get { return currentUserSecondName; } set { currentUserSecondName = value; OnPropertyChanged("CurrentUserSecondName"); } } string currentUserThirdName; public string CurrentUserThirdName { get { return currentUserThirdName; } set { currentUserThirdName = value; OnPropertyChanged("CurrentUserThirdName"); } } string currentUserPhone; public string CurrentUserPhone { get { return currentUserPhone; } set { currentUserPhone = value; OnPropertyChanged("CurrentUserPhone"); } } private RelayCommand showAuthorizathionWindow; public RelayCommand ShowAuthorizathionWindow { get { return showAuthorizathionWindow ?? (showAuthorizathionWindow = new RelayCommand(obj => { MainWindow reg = new MainWindow(); reg.Show(); Helper.CloseWindow(); })); } } private RelayCommand addNewUser; public RelayCommand AddNewUser { get { return addNewUser ?? (addNewUser = new RelayCommand(obj => { PasswordBox pb = (PasswordBox)obj; if (Helper.CheckLoginPass(currentUserLogin) && Helper.CheckLoginPass(pb.Password) && Helper.CheckPhone(currentUserPhone)&& Helper.CheckName(currentUserFirstName)&& Helper.CheckName(currentUserSecondName)&& Helper.CheckName(currentUserThirdName)) { using (DBContext db = new DBContext()) { int maxId; if (db.User.Count() > 0) { maxId = db.User.Max(u => u.Id); } else { maxId = 1; } User newUser = new User(maxId+1, currentUserFirstName, currentUserSecondName, currentUserThirdName, currentUserLogin, pb.Password, currentUserPhone); db.User.Add(newUser); db.SaveChanges(); MainWindow reg = new MainWindow(); reg.Show(); Helper.CloseWindow(); MessageBox.Show("Пользователь создан"); } } else MessageBox.Show("Данные введены неверно!"); })); } } } }