using PP_Ven_MosS.ModelBase; using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using PP_Ven_MosS.Classes; using System.Data; using System.Text.RegularExpressions; using System.Xml.Linq; namespace PP_Ven_MosS.Pages { /// /// Логика взаимодействия для Registration.xaml /// public partial class Registration : Page { public Registration() { InitializeComponent(); CBRole.ItemsSource = Classes.Database.entities.Role.ToList(); CBRole.SelectedValue = "Id_role"; CBRole.DisplayMemberPath = "Title_role"; CBRole.SelectedIndex = 2; } private void reg_Click(object sender, RoutedEventArgs e) { User user = Classes.Database.entities.User.FirstOrDefault(x => x.Login == login.Text); string Surname = Surn.Text.Trim(); string Name = Nam.Text.Trim(); string Patronymic = Patron.Text.Trim(); string Dolgnost = Dolg.Text.Trim(); string PhoneNum = PhNum.Text.Trim(); string Login = login.Text.Trim(); string Password = password.Password.Trim(); string Role = CBRole.Text.Trim(); Regex pass1 = new Regex("[A-Z]"); Regex pass2 = new Regex("[a-z]"); Regex pass3 = new Regex("[0-9]"); Regex pass4 = new Regex(@"[!@#$%^&*()_+{}\[\]:;<>,.?~\\-]"); Regex pass5 = new Regex("."); if (pass1.IsMatch(password.Password) == false) { password.ToolTip = "Ошибка ввода"; password.Background = Brushes.Red; MessageBox.Show("Пароль должен содержать не менее 1 заглавной латиской буквы"); } else if (pass2.Matches(password.Password).Count < 3) { password.ToolTip = "Ошибка ввода"; password.Background = Brushes.Red; MessageBox.Show("Пароль должен содержать не менее 3 прописных латинских букв"); } else if (pass3.Matches(password.Password).Count < 2) { password.ToolTip = "Ошибка ввода"; password.Background = Brushes.Red; MessageBox.Show("Пароль должен содержать не менее 2 цифр"); } else if (pass4.IsMatch(password.Password) == false) { password.ToolTip = "Ошибка ввода"; password.Background = Brushes.Red; MessageBox.Show("Пароль должен содержать не менее 1 спецсимвол"); } else if (pass5.Matches(password.Password).Count < 8) { password.ToolTip = "Ошибка ввода"; password.Background = Brushes.Red; MessageBox.Show("Пароль должен содержать не менее 8 символов"); } else if (user != null) { MessageBox.Show("Пользователь с таким логином уже существует."); login.ToolTip = "Ошибка ввода"; login.Background = Brushes.Red; } else if (true) { try { password.ToolTip = ""; password.Background = Brushes.Red; login.ToolTip = ""; login.Background = Brushes.Red; User newUser = new User() { Surname = Surn.Text, Name = Nam.Text, Patronymic = Patron.Text, Post = Dolg.Text, Phone_number = PhNum.Text, Login = login.Text, Password = password.Password.GetHashCode().ToString(), Id_role = CBRole.SelectedIndex + 1, Count_complete_app = 0, Count_complete_event = 0, }; Classes.Database.entities.User.Add(newUser); Classes.Database.entities.SaveChanges(); MessageBox.Show("Вы зарегистрировались!"); UserID.userid = newUser.Id_user; UserRole.userrole = newUser.Id_role; if (UserRole.userrole == 1) { FrameClass.MainFrame.Navigate(new MenuAdmin()); } else if (UserRole.userrole == 2) { FrameClass.MainFrame.Navigate(new ApplicationsListAdmin()); } else if (UserRole.userrole == 3) { FrameClass.MainFrame.Navigate(new ApplicationsListUser()); } else { MessageBox.Show("Ошибка"); } } catch { MessageBox.Show("Проверьте заполнение всех полей!"); } } } private void Back_Click(object sender, RoutedEventArgs e) { FrameClass.MainFrame.Navigate(new Avtorization()); } } }