AdminPage.xaml.cs 9.9 KB

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