using MyApp.ExampleDataSetTableAdapters; using MyApp.Services; using System; using System.Data; using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Media; using System.Windows.Navigation; namespace MyApp.AdminPages { public partial class AdminUsers : Page { UsersTableAdapter usersTableAdapter = new UsersTableAdapter(); RoleTableAdapter roleTableAdapter = new RoleTableAdapter(); public AdminUsers() { InitializeComponent(); Users_DG.ItemsSource = usersTableAdapter.GetData(); RolesCB.ItemsSource = roleTableAdapter.GetData(); RolesCB.DisplayMemberPath = "TitleRole"; SortCB.ItemsSource = SearchAndSort.NotFullSortBy; } //Поиск и сортировка private void StartSearchButton_Click(object sender, RoutedEventArgs e) { if (SearchTB.Text != "Поиск..." & SearchTB.Text != "") { SearchAndSort.Search(usersTableAdapter, Users_DG, SearchTB.Text); } else { Users_DG.ItemsSource = usersTableAdapter.GetData(); } } private void SortCB_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (SortCB.SelectedItem != null) { ForSortCB.Visibility = Visibility.Collapsed; } if(SortCB.SelectedItem.ToString() == "По алфавиту") { SearchAndSort.SortByAlphabet(usersTableAdapter, Users_DG); } } //Прочие события private void Button_Click(object sender, RoutedEventArgs e) { Window ownerWindow = Application.Current.Windows.OfType<Window>().SingleOrDefault(w => w.Title == "MainWindow"); ownerWindow.Close(); } private void Button_Click_1(object sender, RoutedEventArgs e) { Window ownerWindow = Application.Current.Windows.OfType<Window>().SingleOrDefault(w => w.Title == "MainWindow"); ownerWindow.WindowState = WindowState.Minimized; } private void SearchTB_MouseEnter(object sender, MouseEventArgs e) { if (SearchTB.Text == "Поиск...") { SearchTB.Text = ""; SearchTB.Foreground = Brushes.White; } } private void SearchTB_MouseLeave(object sender, MouseEventArgs e) { if (SearchTB.Text == "") { SearchTB.Text = "Поиск..."; SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6BFFFFFF")); SearchTB.Foreground = sb; } } private void NameTB_MouseEnter(object sender, MouseEventArgs e) { if (NameTB.Text == "Имя") { NameTB.Text = ""; NameTB.Foreground = Brushes.White; } } private void NameTB_MouseLeave(object sender, MouseEventArgs e) { if (NameTB.Text == "") { NameTB.Text = "Имя"; SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6BFFFFFF")); NameTB.Foreground = sb; } } private void SurnameTB_MouseEnter(object sender, MouseEventArgs e) { if (SurnameTB.Text == "Фамилия") { SurnameTB.Text = ""; SurnameTB.Foreground = Brushes.White; } } private void SurnameTB_MouseLeave(object sender, MouseEventArgs e) { if (SurnameTB.Text == "") { SurnameTB.Text = "Фамилия"; SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6BFFFFFF")); SurnameTB.Foreground = sb; } } private void LoginTB_MouseEnter(object sender, MouseEventArgs e) { if (LoginTB.Text == "Логин") { LoginTB.Text = ""; LoginTB.Foreground = Brushes.White; } } private void LoginTB_MouseLeave(object sender, MouseEventArgs e) { if (LoginTB.Text == "") { LoginTB.Text = "Логин"; SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6BFFFFFF")); LoginTB.Foreground = sb; } } private void PasswordTB_MouseEnter(object sender, MouseEventArgs e) { if (PasswordTB.Text == "Пароль") { PasswordTB.Text = ""; PasswordTB.Foreground = Brushes.White; } } private void PasswordTB_MouseLeave(object sender, MouseEventArgs e) { if (PasswordTB.Text == "") { PasswordTB.Text = "Пароль"; SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6BFFFFFF")); PasswordTB.Foreground = sb; } } //Навигация private void ItemsPageButton_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new AdminProducts()); } private void OrdersPageButton_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new AdminOrders()); } private void RolesPageButton_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new AdminRoles()); } private void UsersPageButton_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new AdminUsers()); } //CRUD private void Users_DG_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (Users_DG.SelectedItem != null) { SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FFFFFF")); var name = (Users_DG.SelectedItem as DataRowView).Row[1]; NameTB.Text = name.ToString(); NameTB.Foreground = sb; var surname = (Users_DG.SelectedItem as DataRowView).Row[2]; SurnameTB.Text = surname.ToString(); SurnameTB.Foreground = sb; var login = (Users_DG.SelectedItem as DataRowView).Row[3]; LoginTB.Text = login.ToString(); LoginTB.Foreground = sb; var password = (Users_DG.SelectedItem as DataRowView).Row[4]; PasswordTB.Text = password.ToString(); PasswordTB.Foreground = sb; } } private void RolesCB_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (RolesCB.SelectedItem != null) { ForRolesCB.Visibility = Visibility.Collapsed; } } private void AddButton_Click(object sender, RoutedEventArgs e) { if (NameTB.Text != "" & SurnameTB.Text != "" & LoginTB.Text != "" & PasswordTB.Text != "" & RolesCB.SelectedItem != null & NameTB.Text != null & SurnameTB.Text != null & LoginTB.Text != null & PasswordTB.Text != null) { if (NameTB.Text != "Имя" & SurnameTB.Text != "Фамилия" & LoginTB.Text != "Логин" & PasswordTB.Text != "Пароль") { bool HaveSameLogin = false; foreach (var item in Users_DG.Items) { var row = Users_DG.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow; if (row != null) { var cellcontent = Users_DG.Columns[3].GetCellContent(row); if (cellcontent is TextBlock textblock) { if (textblock.Text == LoginTB.Text) { HaveSameLogin = true; MessageBox.Show("Такой логин уже существует!"); break; } } } } if (HaveSameLogin == false) { int KolvoElementov = Users_DG.Items.Count; var GetLastIndex = (Users_DG.Items.GetItemAt(KolvoElementov - 1) as DataRowView).Row[0]; var IDRole = (RolesCB.SelectedItem as DataRowView).Row[0]; usersTableAdapter.Insert((int)GetLastIndex + 1, NameTB.Text, SurnameTB.Text, LoginTB.Text, PasswordTB.Text, (int)IDRole); Users_DG.ItemsSource = usersTableAdapter.GetData(); } } } } private void DelButton_Click(object sender, RoutedEventArgs e) { if (NameTB.Text != "" & SurnameTB.Text != "" & LoginTB.Text != "" & PasswordTB.Text != "" & SurnameTB.Text != null & LoginTB.Text != null & PasswordTB.Text != null) { try { var index = (Users_DG.SelectedItem as DataRowView).Row[0]; var idrole = (Users_DG.SelectedItem as DataRowView).Row[5]; usersTableAdapter.Delete((int)index, NameTB.Text, SurnameTB.Text, LoginTB.Text, PasswordTB.Text, (int)idrole); Users_DG.ItemsSource = usersTableAdapter.GetData(); } catch (Exception) { return; } } } private void ChangeButton_Click(object sender, RoutedEventArgs e) { if (RolesCB.SelectedItem == null) { MessageBox.Show("Выберите роль!"); } if (NameTB.Text != "" & SurnameTB.Text != "" & LoginTB.Text != "" & PasswordTB.Text != "" & RolesCB.SelectedItem != null & NameTB.Text != null & SurnameTB.Text != null & LoginTB.Text != null & PasswordTB.Text != null) { try { var index = (Users_DG.SelectedItem as DataRowView).Row[0]; var OriginalName = (Users_DG.SelectedItem as DataRowView).Row[1]; var OriginalSurname = (Users_DG.SelectedItem as DataRowView).Row[2]; var OriginalLogin = (Users_DG.SelectedItem as DataRowView).Row[3]; var OriginalPassword = (Users_DG.SelectedItem as DataRowView).Row[4]; var OriginalIDROLE = (Users_DG.SelectedItem as DataRowView).Row[5]; var IDRoleFromCB = (RolesCB.SelectedItem as DataRowView).Row[0]; bool HaveSameLogin = false; if (OriginalLogin.ToString() != LoginTB.Text) { foreach (var item in Users_DG.Items) { var row = Users_DG.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow; if (row != null) { var cellcontent = Users_DG.Columns[3].GetCellContent(row); if (cellcontent is TextBlock textblock) { if (textblock.Text == LoginTB.Text) { HaveSameLogin = true; } } } } } if (OriginalName.ToString() != NameTB.Text | OriginalSurname.ToString() != SurnameTB.Text | OriginalLogin.ToString() != LoginTB.Text | OriginalPassword.ToString() != PasswordTB.Text | (int)OriginalIDROLE != (int)IDRoleFromCB) { if (OriginalLogin.ToString() != LoginTB.Text) { if(HaveSameLogin == true) { MessageBox.Show("Такой логин существует!"); return; } } usersTableAdapter.Update((int)index, NameTB.Text, SurnameTB.Text, LoginTB.Text, PasswordTB.Text, (int)IDRoleFromCB, (int)index, OriginalName.ToString(), OriginalSurname.ToString(), OriginalLogin.ToString(), OriginalPassword.ToString(), (int)OriginalIDROLE); Users_DG.ItemsSource = usersTableAdapter.GetData(); } } catch (Exception) { return; } } } } }