using System.Linq; using System.Windows; using System.Windows.Controls; namespace Hotel_Course_Project { /// /// Логика взаимодействия для AdminPage.xaml /// public partial class AdminPage : Page { public AdminPage(Staff admin) { InitializeComponent(); } private void Page_Loaded(object sender, RoutedEventArgs e) { #region условия для выводва работников if (SortStaffCB.SelectedItem == activeS) { StaffList.ItemsSource = DataBase.db.Staff.Where(item => item.Id_PersStatus == 1).ToList(); } else { StaffList.ItemsSource = DataBase.db.Staff.Where(item => item.Id_PersStatus == 2).ToList(); } #endregion #region Условия для выводва клиентов if (SortClientCB.SelectedItem == activeC) { ClientList.ItemsSource = DataBase.db.Client.Where(item => item.Id_PersStatus == 1).ToList(); } else { ClientList.ItemsSource = DataBase.db.Client.Where(item => item.Id_PersStatus == 2).ToList(); } #endregion RoomList.ItemsSource = DataBase.db.Room.ToList(); PayList.ItemsSource = DataBase.db.Order.ToList(); RoleList.ItemsSource = DataBase.db.StaffRole.ToList(); StatusRoomList.ItemsSource = DataBase.db.RoomStatus.ToList(); PayTypeList.ItemsSource = DataBase.db.PayType.ToList(); } #region Обработчики кнопок добавления private void AddStaffBtn_Click(object sender, RoutedEventArgs e) { PChanger.MainFrame.Navigate(new StaffChangeOrAddPage(null)); Page_Loaded(sender, e); } private void AddClientBtn_Click(object sender, RoutedEventArgs e) { PChanger.MainFrame.Navigate(new ClientChangeOrAddPage(null)); Page_Loaded(sender, e); } private void AddRoomBtn_Click(object sender, RoutedEventArgs e) { RoomAddOrChangePage roomAddOrChange = new RoomAddOrChangePage(null); PChanger.MainFrame.Navigate(new RoomAddOrChangePage(null)); Page_Loaded(sender, e); } private void RoleAddBtn_Click(object sender, RoutedEventArgs e) { RoleAddWindow roleAdd = new RoleAddWindow(); roleAdd.ShowDialog(); Page_Loaded(sender, e); } private void StatusRoomAddBtn_Click(object sender, RoutedEventArgs e) { StatusRoomAddWindow statusRoomAdd = new StatusRoomAddWindow(); statusRoomAdd.ShowDialog(); Page_Loaded(sender, e); } private void PayTypeAddBtn_Click(object sender, RoutedEventArgs e) { PayTypeAddWindow payTypeAdd = new PayTypeAddWindow(); payTypeAdd.ShowDialog(); Page_Loaded(sender, e); } #endregion #region Обработчики кнопок выбора private void StaffSelectBtn_Click(object sender, RoutedEventArgs e) { Staff staff = (sender as Button).DataContext as Staff; PChanger.MainFrame.Navigate(new StaffChangeOrAddPage(staff)); Page_Loaded(sender, e); } private void ClientSelectBtn_Click(object sender, RoutedEventArgs e) { Client client = (sender as Button).DataContext as Client; PChanger.MainFrame.Navigate(new ClientChangeOrAddPage(client)); Page_Loaded(sender, e); } private void SelectRoomBtn_Click(object sender, RoutedEventArgs e) { Room room = (sender as Button).DataContext as Room; PChanger.MainFrame.Navigate(new RoomAddOrChangePage(room)); Page_Loaded(sender, e); } #endregion #region Обработчики выбора в сортировке private void SortStaffCB_SelectionChanged(object sender, RoutedEventArgs e) { if (StaffList != null) { Page_Loaded(sender, e); } } private void SortClientCB_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (ClientList != null) { Page_Loaded(sender, e); } } #endregion #region Обработчики кнопок поиска private void StaffSrchBtn_Click(object sender, RoutedEventArgs e) { var seacrhed = DataBase.db.Staff.Where(item => (item.LName + " " + item.FName + " " + item.MName + " " + item.Login + " " + item.Password).Contains(StaffSeacrhTB.Text)).ToList(); if (SortStaffCB.SelectedItem == activeS) { StaffList.ItemsSource = seacrhed.Where(item => item.Id_PersStatus == 1).ToList(); } else { StaffList.ItemsSource = seacrhed.Where(item => item.Id_PersStatus == 2).ToList(); } } private void ClientSrchBtn_Click(object sender, RoutedEventArgs e) { var seacrhed = DataBase.db.Client.Where(item => (item.LName + " " + item.FName + " " + item.MName).Contains(ClientSeacrhTB.Text)).ToList(); if (SortClientCB.SelectedItem == activeC) { ClientList.ItemsSource = seacrhed.Where(item => item.Id_PersStatus == 1).ToList(); } else { ClientList.ItemsSource = seacrhed.Where(item => item.Id_PersStatus == 2).ToList(); } } private void PaySrchBtn_Click(object sender, RoutedEventArgs e) { var searched = DataBase.db.Order.Where(item => (item.Pay.PayDate + " " + item.Pay.EndSum + " " + item.Staff.LName + " " + item.Staff.FName + " " + item.Staff.MName + " " + item.Client.LName + " " + item.Client.FName + " " + item.Room.NumRoom).Contains(PaySeacrhTB.Text)).ToList(); PayList.ItemsSource = searched; } #endregion #region Обработичики для строк поиска private void StaffSeacrhTB_TextChanged(object sender, TextChangedEventArgs e) { if (StaffSeacrhTB.Text == "") { Page_Loaded(sender, e); } } private void ClientSeacrhTB_TextChanged(object sender, TextChangedEventArgs e) { if (ClientSeacrhTB.Text == "") { Page_Loaded(sender, e); } } private void PaySeacrhTB_TextChanged(object sender, TextChangedEventArgs e) { if (PaySeacrhTB.Text == "") { Page_Loaded(sender, e); } } #endregion private void RoleDeleteBtn_Click(object sender, RoutedEventArgs e) { StaffRole role = (sender as Button).DataContext as StaffRole; var ishave = DataBase.db.Staff.Where(item => item.Id_StaffRole == role.Id).ToList(); if (ishave.Count > 0) { MessageBox.Show("Удаление невозможно, т.к. \nимеются работники занимающие \nэту должность"); } else { DataBase.db.StaffRole.Remove(role); DataBase.db.SaveChanges(); Page_Loaded(sender, e); } } private void StatusRoleDeleteBtn_Click(object sender, RoutedEventArgs e) { RoomStatus status = (sender as Button).DataContext as RoomStatus; var ishave = DataBase.db.Order.Where(item => item.Id_Room == status.Id).ToList(); if (ishave.Count > 0) { MessageBox.Show("Удаление невозможно, т.к. эта комната учавствует в заказах"); } else { DataBase.db.RoomStatus.Remove(status); DataBase.db.SaveChanges(); Page_Loaded(sender, e); } } private void PayTypeDeleteBtn_Click(object sender, RoutedEventArgs e) { PayType type = (sender as Button).DataContext as PayType; var ishave = DataBase.db.Pay.Where(item => item.Id_PayType == type.Id).ToList(); if (ishave.Count > 0) { MessageBox.Show("Удаление невозможно, т.к. эта комната учавствует в заказах"); } else { DataBase.db.PayType.Remove(type); DataBase.db.SaveChanges(); Page_Loaded(sender, e); } } } }