// Метод який повертає інформацію про певного адміністратора private void InfoAboutAdmin(string mess) { int adminId = int.Parse(mess); // отримуємо id адміністратора з повідомлення using (var db = new TestingSystemDBContext()) { var admin = db.Administrators.FirstOrDefault(a => a.Id == adminId); // Отримуємо адміністратора з бази по id List <int> groupsId = new List <int>(); // список груп, які створив цей адміністратор List <int> subjectsId = new List <int>(); // список предметів, які створив цей адміністратор if (admin.Groups.Count != 0) { foreach (var item in admin.Groups) { groupsId.Add(item.GroupId); } } if (admin.Subjects.Count != 0) { foreach (var item in admin.Subjects) { groupsId.Add(item.SubjectId); } } DTOAdministrator administrator = new DTOAdministrator { Id = admin.Id, Name = admin.Name, Login = admin.Login, Password = admin.Password, GroupsId = groupsId, SubjectsId = subjectsId }; // створення об'єкта адміністратора для надсилання SendObject(administrator); // надсилання об'єкта адміністратора на клієнтську частину } }
// Метод який викликає метод який повертає інформацію про адміністратора private void AdminInfo() { administrator = client.GetInfoAboutAdmin(); if (administrator != null) { name = administrator.Name; login = administrator.Login; password = administrator.Password; AdminName.Text = name; AdminLogin.Text = login; AdminPassword.Password = password; AdminPasswordTextBox.Text = password; } }
// Метод який повертає інформацію про адміністратора public DTOAdministrator GetInfoAboutAdmin() { string message = "InfoAboutAdmin:"; SendMessage(message + id); // надсилаємо повідомлення на серверну частину для того щоб отримати інформацію про адміністратора var obj = RecieveObject(); // приймаємо відповідь з сервера DTOAdministrator administrator = null; if (obj is DTOAdministrator) // перевіряємо чи це справді DTOAdministrator { administrator = (DTOAdministrator)obj; // приводимо до потрібного типу } return(administrator); }
// Реєстрація нового адміністратора private void AdminRegistration() { var obj = RecieveObject(); // отримуємо об'єкт адміністратора з клієнтської частини if (obj is DTOAdministrator) // перевіряємо чи це справді об'єкт адміністратора { DTOAdministrator dtoAdmin = obj as DTOAdministrator; // приведення до потрібного типу using (var db = new TestingSystemDBContext()) { // якщо такого адміністратора ще не існує в базі то додаємо дані нового адміна в базу if (db.Administrators.FirstOrDefault(a => a.Password == dtoAdmin.Password) == null) { if (db.Administrators.FirstOrDefault(a => a.Login == dtoAdmin.Login) == null) { Administrator administrator = new Administrator() { Name = dtoAdmin.Name, Login = dtoAdmin.Login, Password = dtoAdmin.Password }; db.Administrators.Add(administrator); db.SaveChanges(); SendMessage("successfully"); } else { SendMessage("login already exists"); } } else { SendMessage("password already exists"); } } } else { SendMessage("Error object!"); } }
// кнопка реєстрації, в залежності від обраного користувача відбувається реєстрація адміністратора або студента private void RegistrateButton_Click(object sender, RoutedEventArgs e) { string answer = null; if (!isAdmin) { if (NameBox.Text != "" && SurNameBox.Text != "" && LoginBox.Text != "" && PasswordBox.Password != "" && ConfirmPasswordBox.Password != "" && selectedName != null) { if (PasswordBox.Password.Length > 4) { if (PasswordBox.Password == ConfirmPasswordBox.Password) { student = new DTOStudent { Name = NameBox.Text, SurName = SurNameBox.Text, Login = LoginBox.Text, Password = PasswordBox.Password, GroupId = groups.FirstOrDefault(g => g.GroupName == selectedName).GroupId }; answer = client.Registrate(student); if (answer == "successfully") { client.LogOut(); Close(); } else if (answer == "login already exists") { MessageBox.Show("Already exist user with this login!!!"); LoginBox.Text = ""; } else if (answer == "password already exists") { MessageBox.Show("Already exist user with this password!!!"); PasswordBox.Password = ""; } else { MessageBox.Show("Something wrong!!!"); client.Disconnect(); Close(); } } else { MessageBox.Show("Error in password or confirm password!!!"); PasswordBox.Foreground = Brushes.Red; ConfirmPasswordBox.Foreground = Brushes.Red; } } else { MessageBox.Show("Error in password or confirm password!!!"); PasswordBox.Foreground = Brushes.Red; ConfirmPasswordBox.Foreground = Brushes.Red; } } else { MessageBox.Show("Fill all the gaps!!!"); } } else { if (NameBox.Text != "" && LoginBox.Text != "" && PasswordBox.Password != "" && ConfirmPasswordBox.Password != "") { if (PasswordBox.Password.Length > 4) { if (PasswordBox.Password == ConfirmPasswordBox.Password) { admin = new DTOAdministrator { Name = NameBox.Text, Login = LoginBox.Text, Password = PasswordBox.Password }; answer = client.Registrate(admin); } else { MessageBox.Show("Error in password or confirm password!!!"); PasswordBox.Foreground = Brushes.Red; ConfirmPasswordBox.Foreground = Brushes.Red; } } else { MessageBox.Show("Error in password or confirm password!!!"); PasswordBox.Foreground = Brushes.Red; ConfirmPasswordBox.Foreground = Brushes.Red; } } else { MessageBox.Show("Fill all the gaps!!!"); } } }