void UpdateProgrammsList(int id) { loadProgrammsContext(); // Обновляем список using (nkeEntities1 db = new nkeEntities1()) { // Загружаем список доступных пользователю программ var userProgramms = db.Programms.Where(x => x.UserID == id).ToList(); foreach (var programm in userProgramms) { // Если нашли программу в листе то устанавливаем чекбокс в true try { var attachedProgramm = programmsContextList.First(x => x.ProgrammName == programm.ProgrammName); attachedProgramm.IsChecked = true; } catch // Если программы нет в листе, но есть в базе то добавляем { programmsContextList.Add(new ProgrammsContext() { ProgrammName = programm.ProgrammName, ProgrammPath = programm.ProgrammPath, IsChecked = true }); } } } }
void loadStudent() { AdminPanel.Visibility = Visibility.Hidden; // Скрываем панель админа StudentPanel.Visibility = Visibility.Visible; // Показываем панель студента // Процедура отлова всех окон //CatchingWindows(); // Указываем путь для локальных и сетевых папок BrowserPublic.Navigate(@"C:\"); //BrowserUser.Navigate(@"\\DC-CLOUD-2\" + user.Login); using (nkeEntities1 db = new nkeEntities1()) { var programms = db.Programms.Where(x => x.UserID == user.ID).ToList(); // Загружаем список доступных пользователю программ foreach (var item in programms) // Создание кнопки для каждой программы { System.Windows.Controls.Button btn = new System.Windows.Controls.Button(); btn.Click += OpenProgramm; // Вешаем событие на кнопку btn.Content = item.ProgrammName; // Указываем имя программы btn.Height = 40; btn.Cursor = System.Windows.Input.Cursors.Hand; btn.Style = Resources["RoundedButtonStyle"] as Style; btn.Margin = new Thickness(5); btn.HorizontalAlignment = System.Windows.HorizontalAlignment.Center; spProgramms.Children.Add(btn); // Добавляем кнопку на форму в stack panel programmsList.Add(item); // Так же добавляем запись о кнопке в лист } } }
private void saveP_Click(object sender, RoutedEventArgs e) { using (nkeEntities1 db = new nkeEntities1()) { // Загружаем список программ которые уже есть у пользователя в базе данных List <Programms> oldProgramms = new List <Programms>(); oldProgramms = db.Programms.Where(x => x.UserID == (int)UsersCB.SelectedValue).ToList(); foreach (var pr in programmsContextList) // Пробегаемся по списку всех программ на компьютере { // Если нашли программу которая есть у пользователя в БД и галочка убрана то удаляем её из БД var isset = oldProgramms.FirstOrDefault(x => x.ProgrammName == pr.ProgrammName && x.UserID == (int)UsersCB.SelectedValue); if (isset != null && !pr.IsChecked) { var delP = db.Programms.First(x => x.ProgrammName == isset.ProgrammName && x.UserID == (int)UsersCB.SelectedValue); db.Programms.Remove(delP); } else if (isset == null) // Если программы нет в БД у пользователя и она отмечена галочкой то добавляем её в БД { if (pr.IsChecked) { Programms program = new Programms(); program.ProgrammName = pr.ProgrammName; program.ProgrammPath = pr.ProgrammPath; program.UserID = Convert.ToInt32(UsersCB.SelectedValue); db.Programms.Add(program); } } } db.SaveChanges(); } System.Windows.MessageBox.Show("Изменения успешно сохранены!", "Info", MessageBoxButton.OK, MessageBoxImage.Information); }
// Functions void loadAdmin() { TopPanel.Height = new GridLength(0); // Скрываем верхнюю панель // Меняем пропорции у чата ChatRow1.Height = new GridLength(0.08, GridUnitType.Star); ChatRow2.Height = new GridLength(0.84, GridUnitType.Star); // Меняем цвет у таблиц с файлами GridLocal.Background = (SolidColorBrush)(new BrushConverter().ConvertFrom("#BDBDBD")); GridNetwork.Background = (SolidColorBrush)(new BrushConverter().ConvertFrom("#BDBDBD")); AdminPanel.Visibility = Visibility.Visible; // Показываем панель админа StudentPanel.Visibility = Visibility.Hidden; // Скрываем панель студента // Указываем путь для сетевых и локальных папок BrowserPublic.Navigate(@"C:\"); BrowserUser.Navigate(@"C:\"); // Загружаем список студентов в Combobox using (nkeEntities1 db = new nkeEntities1()) UsersCB.ItemsSource = db.Users.Where(x => x.Role == "Student").ToList(); UsersCB.VerticalContentAlignment = VerticalAlignment.Center; // Устанавливаем поле которое будет отображаться UsersCB.DisplayMemberPath = "Login"; // Устанавливаем фактическое значение отображаемого поля UsersCB.SelectedValuePath = "ID"; UsersCB.SelectedIndex = 0; // Делаем выбранным первый элемент // Загружаем список установленных на компьютере программ loadProgrammsContext(); // Расставляем чекбоксы на программах которые уже доступны пользователю UpdateProgrammsList(Convert.ToInt32(UsersCB.SelectedValue)); }
// Functions void Auth(string login, string pass) { using (nkeEntities1 db = new nkeEntities1()) { var User = db.Users.FirstOrDefault(x => x.Login == login && x.Password == pass); if (User != null) { //switch (isUser.Role) { // case "Admin": // MessageBox.Show("Admin","Info",MessageBoxButton.OK,MessageBoxImage.Information); // break; // case "Teacher": // MessageBox.Show("Teacher", "Info", MessageBoxButton.OK, MessageBoxImage.Information); // break; // case "Student": // MessageBox.Show("Student", "Info", MessageBoxButton.OK, MessageBoxImage.Information); // break; // case "User": // MessageBox.Show("User", "Info", MessageBoxButton.OK, MessageBoxImage.Information); // break; // case "Internet": // MessageBox.Show("Internet", "Info", MessageBoxButton.OK, MessageBoxImage.Information); // break; //} UserPanel f = new UserPanel(User); f.Show(); } else { System.Windows.MessageBox.Show("Неверный логин или пароль", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } } }