MainWindow.xaml.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows;
  7. using System.Windows.Controls;
  8. using System.Windows.Data;
  9. using System.Windows.Documents;
  10. using System.Windows.Input;
  11. using System.Windows.Media;
  12. using System.Windows.Media.Imaging;
  13. using System.Windows.Navigation;
  14. using System.Windows.Shapes;
  15. using static System.Collections.Specialized.BitVector32;
  16. namespace Control_DB_Railway.Views
  17. {
  18. /// <summary>
  19. /// Логика взаимодействия для MainWindow.xaml
  20. /// </summary>
  21. public partial class MainWindow : Window
  22. {
  23. Entities entities = new Entities();
  24. public MainWindow()
  25. {
  26. InitializeComponent();
  27. // Заполнение ListBox из таблицы "Станции"
  28. foreach (var row_Station in entities.Stations)
  29. listBox_Station.Items.Add(row_Station);
  30. // Заполнение ListBox из таблицы "Тип станции"
  31. foreach (var row_TypeStation in entities.TypeStation)
  32. listBox_TypeStation.Items.Add(row_TypeStation);
  33. // Заполнение ListBox из таблицы "Дороги"
  34. foreach (var row_Roads in entities.Roads)
  35. listBox_Road.Items.Add(row_Roads);
  36. // Заполнение comboBox_TypeStation из таблицы "Тип станции"
  37. foreach (var element_TypeStationID in entities.TypeStation)
  38. comboBox_TypeStation.Items.Add(element_TypeStationID);
  39. }
  40. /********************/
  41. /* ОБЪЕКТ "СТАНЦИЯ" */
  42. /********************/
  43. /* Отображение информации в поля "Станция" */
  44. private void listBox_Station_SelectionChanged(object sender, SelectionChangedEventArgs e)
  45. {
  46. var selectStation = listBox_Station.SelectedItem as Stations;
  47. if (selectStation != null)
  48. {
  49. textBox_Station.Text = selectStation.nameStation;
  50. checkBox_overheadTransition.IsChecked = selectStation.overheadTransition;
  51. textBox_Location.Text = selectStation.location;
  52. comboBox_TypeStation.SelectedItem = (from type in entities.TypeStation
  53. where type.typeStationID == selectStation.typeStationID
  54. select type).Single<TypeStation>();
  55. }
  56. else
  57. {
  58. textBox_Station.Text = "";
  59. checkBox_overheadTransition.IsChecked = false;
  60. textBox_Location.Text = "";
  61. comboBox_TypeStation.SelectedIndex = -1;
  62. }
  63. }
  64. /* Нажатие по кнопке "Добавить/изменить станцию" */
  65. private void button_AddRecord_Station_Click(object sender, RoutedEventArgs e)
  66. {
  67. var station = listBox_Station.SelectedItem as Stations;
  68. if (textBox_Station.Text == "" ||
  69. comboBox_TypeStation.SelectedIndex == -1 ||
  70. textBox_Location.Text == "")
  71. MessageBox.Show("Заполните все поля!", "Ошибка!", MessageBoxButton.OK,
  72. MessageBoxImage.Error);
  73. else
  74. {
  75. if (station == null)
  76. {
  77. station = new Stations();
  78. entities.Stations.Add(station); // добавляем запись в БД
  79. listBox_Station.Items.Add(station); // добавляем запись в ListBox
  80. }
  81. station.nameStation = textBox_Station.Text;
  82. station.overheadTransition = (bool)checkBox_overheadTransition.IsChecked;
  83. station.location = textBox_Location.Text;
  84. station.typeStationID = (comboBox_TypeStation.SelectedItem as TypeStation).typeStationID;
  85. entities.SaveChanges();
  86. listBox_Station.Items.Refresh();
  87. MessageBox.Show("Успешное сохранение/добавление записи!", "Оповещение",
  88. MessageBoxButton.OK, MessageBoxImage.Information);
  89. }
  90. }
  91. /* Удаление записи "Станции" */
  92. private void button_DeleteRecord_Station_Click(object sender, RoutedEventArgs e)
  93. {
  94. var rezult = MessageBox.Show("Вы уверены, что хотите удалить запись?", "Удаление",
  95. MessageBoxButton.YesNo, MessageBoxImage.Question);
  96. if (rezult == MessageBoxResult.No)
  97. return;
  98. var delete_station = listBox_Station.SelectedItem as Stations;
  99. if (delete_station != null)
  100. {
  101. listBox_Station.Items.Remove(delete_station);
  102. checkBox_overheadTransition.IsChecked = false;
  103. textBox_Station.Clear();
  104. textBox_Location.Clear();
  105. entities.Stations.Remove(delete_station);
  106. entities.SaveChanges();
  107. }
  108. else
  109. MessageBox.Show("Нет удаляемых объектов!", "Ошибка", MessageBoxButton.OK,
  110. MessageBoxImage.Warning);
  111. }
  112. /* Очистка полей "Станции" */
  113. private void button_ClearStation_Click(object sender, RoutedEventArgs e)
  114. {
  115. textBox_Station.Text = "";
  116. checkBox_overheadTransition.IsChecked = false;
  117. comboBox_TypeStation.SelectedIndex = -1;
  118. listBox_Station.SelectedIndex = -1;
  119. textBox_Station.Focus();
  120. }
  121. /************************/
  122. /* ОБЪЕКТ "ТИП СТАНЦИИ" */
  123. /************************/
  124. /* Отображение информации в поля "Тип станции" */
  125. private void listBox_TypeStation_SelectionChanged(object sender, SelectionChangedEventArgs e)
  126. {
  127. var selectTypeStation = listBox_TypeStation.SelectedItem as TypeStation;
  128. if (selectTypeStation != null)
  129. {
  130. textBox_TypeStation.Text = selectTypeStation.nameTypeStation;
  131. checkBox_passagerService.IsChecked = selectTypeStation.passagerService;
  132. }
  133. else
  134. {
  135. textBox_TypeStation.Text = "";
  136. checkBox_passagerService.IsChecked = false;
  137. }
  138. }
  139. /* Добавление/сохранение записи в "Типе станции" */
  140. private void button_AddRecord_TypeStation_Click(object sender, RoutedEventArgs e)
  141. {
  142. var typeStation = listBox_TypeStation.SelectedItem as TypeStation;
  143. if (textBox_TypeStation.Text == "")
  144. MessageBox.Show("Напишите название!", "Ошибка!", MessageBoxButton.OK,
  145. MessageBoxImage.Error);
  146. else
  147. {
  148. if (typeStation == null)
  149. {
  150. typeStation = new TypeStation();
  151. entities.TypeStation.Add(typeStation); // добавляем запись в БД
  152. listBox_TypeStation.Items.Add(typeStation); // добавляем запись в ListBox
  153. }
  154. typeStation.nameTypeStation = textBox_TypeStation.Text;
  155. typeStation.passagerService = (bool)checkBox_passagerService.IsChecked;
  156. entities.SaveChanges();
  157. listBox_TypeStation.Items.Refresh();
  158. MessageBox.Show("Успешное сохранение/добавление записи!", "Оповещение",
  159. MessageBoxButton.OK, MessageBoxImage.Information);
  160. MessageBox.Show("Для приминения изменений необходимо перезапустить ИС",
  161. "Оповещение", MessageBoxButton.OK, MessageBoxImage.Information);
  162. Authorization showAuthorization = new Authorization();
  163. showAuthorization.Show();
  164. this.Close();
  165. }
  166. }
  167. /* Удаление записи "Тип станции" */
  168. private void button_DeleteRecord_TypeStation_Click(object sender, RoutedEventArgs e)
  169. {
  170. var delete_typeStation = listBox_TypeStation.SelectedItem as TypeStation;
  171. try
  172. {
  173. // Проверка на наличие записи с дочерней таблице //
  174. var exist_ = (from structure in entities.Stations
  175. where structure.typeStationID == delete_typeStation.typeStationID
  176. select structure).First();
  177. // Если запись найдена, то: //
  178. MessageBox.Show("Запись удалить нельзя!\nСуществуют станции данного типа",
  179. "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  180. }
  181. catch
  182. {
  183. var rezult = MessageBox.Show("Вы уверены, что хотите удалить запись?", "Удаление",
  184. MessageBoxButton.YesNo, MessageBoxImage.Question);
  185. if (rezult == MessageBoxResult.No)
  186. return;
  187. if (delete_typeStation != null)
  188. {
  189. listBox_TypeStation.Items.Remove(delete_typeStation);
  190. checkBox_passagerService.IsChecked = false;
  191. textBox_TypeStation.Clear();
  192. entities.TypeStation.Remove(delete_typeStation);
  193. entities.SaveChanges();
  194. MessageBox.Show("Для приминения изменений необходимо перезапустить ИС",
  195. "Оповещение", MessageBoxButton.OK, MessageBoxImage.Information);
  196. Authorization showAuthorization = new Authorization();
  197. showAuthorization.Show();
  198. this.Close();
  199. }
  200. else
  201. MessageBox.Show("Нет удаляемых объектов!", "Ошибка", MessageBoxButton.OK,
  202. MessageBoxImage.Warning);
  203. }
  204. }
  205. /* Очистка полей "Тип станции" */
  206. private void button_ClearTypeStation_Click(object sender, RoutedEventArgs e)
  207. {
  208. listBox_TypeStation.SelectedIndex = -1;
  209. textBox_TypeStation.Text = "";
  210. checkBox_passagerService.IsChecked = false;
  211. textBox_TypeStation.Focus();
  212. }
  213. /*******************/
  214. /* ОБЪЕКТ "ДОРОГА" */
  215. /*******************/
  216. /* Отображение данных в поля "Дороги" */
  217. private void listBox_Road_SelectionChanged(object sender, SelectionChangedEventArgs e)
  218. {
  219. var selectRoad = listBox_Road.SelectedItem as Roads;
  220. if (selectRoad != null)
  221. {
  222. textBox_NameRoad.Text = selectRoad.nameRoad;
  223. textBox_TypeRoad.Text = selectRoad.typeRoad;
  224. textBox_CategoryQuality.Text = selectRoad.categoryQuality;
  225. }
  226. else
  227. {
  228. textBox_TypeStation.Text = "";
  229. textBox_TypeRoad.Text = "";
  230. textBox_CategoryQuality.Text = "";
  231. }
  232. }
  233. /* Добавление/сохранение записи в "Дорогу" */
  234. private void button_AddRecord_Road_Click(object sender, RoutedEventArgs e)
  235. {
  236. var Road = listBox_Road.SelectedItem as Roads;
  237. if (textBox_NameRoad.Text == "" ||
  238. textBox_CategoryQuality.Text == "" ||
  239. textBox_TypeRoad.Text == "")
  240. MessageBox.Show("Заполните все поля!", "Ошибка!", MessageBoxButton.OK,
  241. MessageBoxImage.Error);
  242. else
  243. {
  244. if (Road == null)
  245. {
  246. Road = new Roads();
  247. entities.Roads.Add(Road); // добавляем запись в БД
  248. listBox_Road.Items.Add(Road); // добавляем запись в ListBox
  249. }
  250. Road.nameRoad = textBox_NameRoad.Text;
  251. Road.categoryQuality = textBox_CategoryQuality.Text;
  252. Road.typeRoad = textBox_TypeRoad.Text;
  253. entities.SaveChanges();
  254. listBox_Road.Items.Refresh();
  255. MessageBox.Show("Успешное сохранение/добавление записи!", "Оповещение",
  256. MessageBoxButton.OK, MessageBoxImage.Information);
  257. }
  258. }
  259. /* Удаление записи в "Дороге" */
  260. private void button_DeleteRecord_Road_Click(object sender, RoutedEventArgs e)
  261. {
  262. var rezult = MessageBox.Show("Вы уверены, что хотите удалить запись?", "Удаление",
  263. MessageBoxButton.YesNo, MessageBoxImage.Question);
  264. if (rezult == MessageBoxResult.No)
  265. return;
  266. var delete_road = listBox_Road.SelectedItem as Roads;
  267. if (delete_road != null)
  268. {
  269. textBox_Station.Clear();
  270. textBox_TypeRoad.Clear();
  271. textBox_CategoryQuality.Clear();
  272. listBox_Road.Items.Remove(delete_road);
  273. entities.Roads.Remove(delete_road);
  274. entities.SaveChanges();
  275. }
  276. else
  277. MessageBox.Show("Нет удаляемых объектов!", "Ошибка", MessageBoxButton.OK,
  278. MessageBoxImage.Warning);
  279. }
  280. /* Очистка полей "Дороги" */
  281. private void button_ClearRoad_Click(object sender, RoutedEventArgs e)
  282. {
  283. textBox_NameRoad.Text = "";
  284. textBox_TypeRoad.Text = "";
  285. textBox_CategoryQuality.Text = "";
  286. listBox_Road.SelectedIndex = -1;
  287. textBox_NameRoad.Focus();
  288. }
  289. /* Кнопка поиска на вкладке "Станции" */
  290. private void buttonSearch_Stations_Click(object sender, RoutedEventArgs e)
  291. {
  292. if (textBox_Search_Stations.Text == "")
  293. return;
  294. else
  295. for (int i = listBox_Station.Items.Count - 1; i >= 0; i--)
  296. {
  297. if (listBox_Station.Items[i].ToString().ToLower().Contains(textBox_Search_Stations.Text.ToLower()))
  298. listBox_Station.SelectedIndex = i;
  299. }
  300. }
  301. /* Кнопка поиска на вкладке "Тип станции" */
  302. private void buttonSearch_TypeStation_Click(object sender, RoutedEventArgs e)
  303. {
  304. if (textBox_Search_TypeStations.Text == "")
  305. return;
  306. else
  307. for (int i = listBox_TypeStation.Items.Count - 1; i >= 0; i--)
  308. {
  309. if (listBox_TypeStation.Items[i].ToString().ToLower().Contains(textBox_Search_TypeStations.Text.ToLower()))
  310. listBox_TypeStation.SelectedIndex = i;
  311. }
  312. }
  313. /* Кнопка поиска на вкладке "Дорога" */
  314. private void buttonSearch_Road_Click(object sender, RoutedEventArgs e)
  315. {
  316. if (textBox_Search_Road.Text == "")
  317. return;
  318. else
  319. for (int i = listBox_Road.Items.Count - 1; i >= 0; i--)
  320. {
  321. if (listBox_Road.Items[i].ToString().ToLower().Contains(textBox_Search_Road.Text.ToLower()))
  322. listBox_Road.SelectedIndex = i;
  323. }
  324. }
  325. /* Закрытие окна и возврат к авторизации */
  326. private void Button_Click(object sender, RoutedEventArgs e)
  327. {
  328. Authorization showAuthorization = new Authorization();
  329. showAuthorization.Show();
  330. this.Close();
  331. }
  332. /* Открытие окна DataGrid */
  333. private void button_OpenDisplayData_Click(object sender, RoutedEventArgs e)
  334. {
  335. DataGrid_Station showDataGrid_Station = new DataGrid_Station();
  336. showDataGrid_Station.Show();
  337. }
  338. }
  339. }