AdminPage.xaml.cs 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using System.Windows;
  4. using System.Windows.Controls;
  5. namespace Hotel_Course_Project
  6. {
  7. /// <summary>
  8. /// Логика взаимодействия для AdminPage.xaml
  9. /// </summary>
  10. public partial class AdminPage : Page
  11. {
  12. public List<Staff> staffSearchedlist;
  13. public List<Client> clientSearchedList;
  14. public AdminPage(Staff admin)
  15. {
  16. InitializeComponent();
  17. }
  18. private void Page_Loaded(object sender, RoutedEventArgs e)
  19. {
  20. #region условия для выводва работников
  21. if (SortStaffCB.SelectedItem == activeS)
  22. {
  23. StaffList.ItemsSource = DataBase.db.Staff.Where(item => item.Id_PersStatus == 1).ToList();
  24. }
  25. else
  26. {
  27. StaffList.ItemsSource = DataBase.db.Staff.Where(item => item.Id_PersStatus == 2).ToList();
  28. }
  29. #endregion
  30. #region Условия для выводва клиентов
  31. if (SortClientCB.SelectedItem == activeC)
  32. {
  33. ClientList.ItemsSource = DataBase.db.Client.Where(item => item.Id_PersStatus == 1).ToList();
  34. }
  35. else
  36. {
  37. ClientList.ItemsSource = DataBase.db.Client.Where(item => item.Id_PersStatus == 2).ToList();
  38. }
  39. #endregion
  40. RoomList.ItemsSource = DataBase.db.Room.ToList();
  41. PayList.ItemsSource = DataBase.db.Order.ToList();
  42. RoleList.ItemsSource = DataBase.db.StaffRole.ToList();
  43. StatusRoomList.ItemsSource = DataBase.db.RoomStatus.ToList();
  44. PayTypeList.ItemsSource = DataBase.db.PayType.ToList();
  45. }
  46. #region Обработчики кнопок добавления
  47. private void AddStaffBtn_Click(object sender, RoutedEventArgs e)
  48. {
  49. PChanger.MainFrame.Navigate(new StaffChangeOrAddPage(null));
  50. Page_Loaded(sender, e);
  51. }
  52. private void AddClientBtn_Click(object sender, RoutedEventArgs e)
  53. {
  54. PChanger.MainFrame.Navigate(new ClientChangeOrAddPage(null));
  55. Page_Loaded(sender, e);
  56. }
  57. private void AddRoomBtn_Click(object sender, RoutedEventArgs e)
  58. {
  59. RoomAddOrChangePage roomAddOrChange = new RoomAddOrChangePage(null);
  60. PChanger.MainFrame.Navigate(new RoomAddOrChangePage(null));
  61. Page_Loaded(sender, e);
  62. }
  63. private void RoleAddBtn_Click(object sender, RoutedEventArgs e)
  64. {
  65. RoleAddWindow roleAdd = new RoleAddWindow();
  66. roleAdd.ShowDialog();
  67. Page_Loaded(sender, e);
  68. }
  69. private void StatusRoomAddBtn_Click(object sender, RoutedEventArgs e)
  70. {
  71. StatusRoomAddWindow statusRoomAdd = new StatusRoomAddWindow();
  72. statusRoomAdd.ShowDialog();
  73. Page_Loaded(sender, e);
  74. }
  75. private void PayTypeAddBtn_Click(object sender, RoutedEventArgs e)
  76. {
  77. PayTypeAddWindow payTypeAdd = new PayTypeAddWindow();
  78. payTypeAdd.ShowDialog();
  79. Page_Loaded(sender, e);
  80. }
  81. #endregion
  82. #region Обработчики кнопок выбора
  83. private void StaffSelectBtn_Click(object sender, RoutedEventArgs e)
  84. {
  85. Staff staff = (sender as Button).DataContext as Staff;
  86. PChanger.MainFrame.Navigate(new StaffChangeOrAddPage(staff));
  87. Page_Loaded(sender, e);
  88. }
  89. private void ClientSelectBtn_Click(object sender, RoutedEventArgs e)
  90. {
  91. Client client = (sender as Button).DataContext as Client;
  92. PChanger.MainFrame.Navigate(new ClientChangeOrAddPage(client));
  93. Page_Loaded(sender, e);
  94. }
  95. private void SelectRoomBtn_Click(object sender, RoutedEventArgs e)
  96. {
  97. Room room = (sender as Button).DataContext as Room;
  98. PChanger.MainFrame.Navigate(new RoomAddOrChangePage(room));
  99. Page_Loaded(sender, e);
  100. }
  101. #endregion
  102. #region Обработчики выбора в сортировке
  103. private void SortStaffCB_SelectionChanged(object sender, RoutedEventArgs e)
  104. {
  105. if (StaffList != null)
  106. {
  107. Page_Loaded(sender, e);
  108. }
  109. }
  110. private void SortClientCB_SelectionChanged(object sender, SelectionChangedEventArgs e)
  111. {
  112. if (ClientList != null)
  113. {
  114. Page_Loaded(sender, e);
  115. }
  116. }
  117. #endregion
  118. #region Обработчики кнопок поиска
  119. private void StaffSrchBtn_Click(object sender, RoutedEventArgs e)
  120. {
  121. string searchText = StaffSeacrhTB.Text;
  122. //var seacrhed = DataBase.db.Staff.Where(item => (item.LName + " " + item.FName + " " + item.MName + " " + item.Login + " " + item.Password).Contains(StaffSeacrhTB.Text)).ToList();
  123. var searched = SearchStaff(DataBase.db.Staff.ToList(), searchText, staffSearchedlist);
  124. if (SortStaffCB.SelectedItem == activeS)
  125. {
  126. StaffList.ItemsSource = searched.Where(item => item.Id_PersStatus == 1).ToList();
  127. }
  128. else
  129. {
  130. StaffList.ItemsSource = searched.Where(item => item.Id_PersStatus == 2).ToList();
  131. }
  132. }
  133. public List<Staff> SearchStaff(List<Staff> listStaff, string searchText, List<Staff> staffSearchedList)
  134. {
  135. staffSearchedList = listStaff.Where(item => (item.LName + " " + item.FName + " " + item.MName + " " + item.Login + " " + item.Password).Contains(searchText)).ToList();
  136. return staffSearchedList;
  137. }
  138. private void ClientSrchBtn_Click(object sender, RoutedEventArgs e)
  139. {
  140. string searchText = ClientSeacrhTB.Text;
  141. //var seacrhed = DataBase.db.Client.Where(item => (item.LName + " " + item.FName + " " + item.MName).Contains(ClientSeacrhTB.Text)).ToList();
  142. var searched = SearchClient(DataBase.db.Client.ToList(), searchText, clientSearchedList);
  143. if (SortClientCB.SelectedItem == activeC)
  144. {
  145. ClientList.ItemsSource = searched.Where(item => item.Id_PersStatus == 1).ToList();
  146. }
  147. else
  148. {
  149. ClientList.ItemsSource = searched.Where(item => item.Id_PersStatus == 2).ToList();
  150. }
  151. }
  152. public List<Client> SearchClient(List<Client> listClient, string searchText, List<Client> clientSearchedList)
  153. {
  154. clientSearchedList = listClient.Where(item => (item.LName + " " + item.FName + " " + item.MName).Contains(searchText)).ToList();
  155. return clientSearchedList;
  156. }
  157. private void PaySrchBtn_Click(object sender, RoutedEventArgs e)
  158. {
  159. 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();
  160. PayList.ItemsSource = searched;
  161. }
  162. #endregion
  163. #region Обработичики для строк поиска
  164. private void StaffSeacrhTB_TextChanged(object sender, TextChangedEventArgs e)
  165. {
  166. if (StaffSeacrhTB.Text == "")
  167. {
  168. Page_Loaded(sender, e);
  169. }
  170. }
  171. private void ClientSeacrhTB_TextChanged(object sender, TextChangedEventArgs e)
  172. {
  173. }
  174. private void PaySeacrhTB_TextChanged(object sender, TextChangedEventArgs e)
  175. {
  176. if (PaySeacrhTB.Text == "")
  177. {
  178. Page_Loaded(sender, e);
  179. }
  180. }
  181. #endregion
  182. #region обработчики кнопок удаления
  183. private void RoleDeleteBtn_Click(object sender, RoutedEventArgs e)
  184. {
  185. StaffRole role = (sender as Button).DataContext as StaffRole;
  186. var ishave = DataBase.db.Staff.Where(item => item.Id_StaffRole == role.Id).ToList();
  187. if (ishave.Count > 0)
  188. {
  189. MessageBox.Show("Удаление невозможно, т.к. \nимеются работники занимающие \nэту должность");
  190. }
  191. else
  192. {
  193. DataBase.db.StaffRole.Remove(role);
  194. DataBase.db.SaveChanges();
  195. Page_Loaded(sender, e);
  196. }
  197. }
  198. private void StatusRoleDeleteBtn_Click(object sender, RoutedEventArgs e)
  199. {
  200. RoomStatus status = (sender as Button).DataContext as RoomStatus;
  201. var ishave = DataBase.db.Order.Where(item => item.Id_Room == status.Id).ToList();
  202. if (ishave.Count > 0)
  203. {
  204. MessageBox.Show("Удаление невозможно, т.к. эта комната учавствует в заказах");
  205. }
  206. else
  207. {
  208. DataBase.db.RoomStatus.Remove(status);
  209. DataBase.db.SaveChanges();
  210. Page_Loaded(sender, e);
  211. }
  212. }
  213. private void PayTypeDeleteBtn_Click(object sender, RoutedEventArgs e)
  214. {
  215. PayType type = (sender as Button).DataContext as PayType;
  216. var ishave = DataBase.db.Pay.Where(item => item.Id_PayType == type.Id).ToList();
  217. if (ishave.Count > 0)
  218. {
  219. MessageBox.Show("Удаление невозможно, т.к. эта этот тип платежей учавствует в платежах");
  220. }
  221. else
  222. {
  223. DataBase.db.PayType.Remove(type);
  224. DataBase.db.SaveChanges();
  225. Page_Loaded(sender, e);
  226. }
  227. }
  228. #endregion
  229. }
  230. }