AdministrationPage.xaml.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. using System;
  2. using System.Linq;
  3. using System.Windows;
  4. using System.Windows.Controls;
  5. using System.Windows.Input;
  6. namespace RaspisKusach.Pages
  7. {
  8. public partial class AdministrationPage : Page
  9. {
  10. public AdministrationPage()
  11. {
  12. InitializeComponent();
  13. TrainsDataGrid.ItemsSource = cnt.db.Trains.ToList();
  14. }
  15. private void TrainsAddButton_Click(object sender, RoutedEventArgs e)
  16. {
  17. try
  18. {
  19. cnt.db.Trains.Add(new Trains()
  20. {
  21. IdTrain = cnt.db.Trains.Select(p => p.IdTrain).DefaultIfEmpty(0).Max() + 1,
  22. Name = TrainsNameBox.Text,
  23. Category = TrainsCategoryBox.Text
  24. });
  25. cnt.db.SaveChanges();
  26. new ErrorWindow("Успешно").ShowDialog();
  27. }
  28. catch (Exception ex)
  29. {
  30. new ErrorWindow(ex.Message).ShowDialog();
  31. }
  32. }
  33. private void StationsAddButton_Click(object sender, RoutedEventArgs e)
  34. {
  35. try
  36. {
  37. cnt.db.Stations.Add(new Stations()
  38. {
  39. IdStation = cnt.db.Stations.Select(p => p.IdStation).DefaultIfEmpty(0).Max() + 1,
  40. Name = StationsNameBox.Text,
  41. Location = StationsLocationBox.Text
  42. });
  43. cnt.db.SaveChanges();
  44. new ErrorWindow("Успешно").ShowDialog();
  45. }
  46. catch (Exception ex)
  47. {
  48. new ErrorWindow(ex.Message).ShowDialog();
  49. }
  50. }
  51. private void TripsAddButton_Click(object sender, RoutedEventArgs e)
  52. {
  53. try
  54. {
  55. int trainId;
  56. if (Functions.IsOnlyDigits(TripsIdTrainBox.Text) && cnt.db.Trains.Select(item => item.IdTrain).Contains(Convert.ToInt32(TripsIdTrainBox.Text)))
  57. trainId = Convert.ToInt32(TripsIdTrainBox.Text);
  58. else if (cnt.db.Trains.Select(item => item.Name).Contains(TripsIdTrainBox.Text))
  59. trainId = cnt.db.Trains.Where(item => item.Name == TripsIdTrainBox.Text).Select(item => item.IdTrain).FirstOrDefault();
  60. else
  61. {
  62. new ErrorWindow("Поезд с таким названием или id не найден").ShowDialog();
  63. return;
  64. }
  65. int routeId;
  66. if (Functions.IsOnlyDigits(TripsIdRouteBox.Text) && cnt.db.Routes.Select(item => item.IdRoute).Contains(Convert.ToInt32(TripsIdRouteBox.Text)))
  67. routeId = Convert.ToInt32(TripsIdRouteBox.Text);
  68. else if (cnt.db.Routes.Select(item => item.Name).Contains(TripsIdRouteBox.Text))
  69. routeId = cnt.db.Routes.Where(item => item.Name == TripsIdRouteBox.Text).Select(item => item.IdRoute).FirstOrDefault();
  70. else
  71. {
  72. new ErrorWindow("Маршрут с таким названием или id не найден").ShowDialog();
  73. return;
  74. }
  75. cnt.db.Trips.Add(new Trips()
  76. {
  77. IdTrip = cnt.db.Trips.Select(p => p.IdTrip).DefaultIfEmpty(0).Max() + 1,
  78. IdTrain = trainId,
  79. IdRoute = routeId,
  80. TripStartDate = (DateTime)TripsStartDatePicker.SelectedDate
  81. });
  82. cnt.db.SaveChanges();
  83. new ErrorWindow("Успешно").ShowDialog();
  84. }
  85. catch (Exception ex)
  86. {
  87. new ErrorWindow(ex.Message).ShowDialog();
  88. }
  89. }
  90. private void RoutesAddButton_Click(object sender, RoutedEventArgs e)
  91. {
  92. try
  93. {
  94. cnt.db.Routes.Add(new Routes()
  95. {
  96. IdRoute = cnt.db.Routes.Select(p => p.IdRoute).DefaultIfEmpty(0).Max() + 1,
  97. Name = RoutesNameBox.Text
  98. });
  99. cnt.db.SaveChanges();
  100. new ErrorWindow("Успешно").ShowDialog();
  101. }
  102. catch (Exception ex)
  103. {
  104. new ErrorWindow(ex.Message).ShowDialog();
  105. }
  106. }
  107. private void RoutesStationsAddButton_Click(object sender, RoutedEventArgs e)
  108. {
  109. try
  110. {
  111. int routeId;
  112. if (Functions.IsOnlyDigits(RoutesStationsIdRouteBox.Text) && cnt.db.Routes.Select(item => item.IdRoute).Contains(Convert.ToInt32(RoutesStationsIdRouteBox.Text)))
  113. routeId = Convert.ToInt32(RoutesStationsIdRouteBox.Text);
  114. else if (cnt.db.Routes.Select(item => item.Name).Contains(RoutesStationsIdRouteBox.Text))
  115. routeId = cnt.db.Routes.Where(item => item.Name == RoutesStationsIdRouteBox.Text).Select(item => item.IdRoute).FirstOrDefault();
  116. else
  117. {
  118. new ErrorWindow("Маршрут с таким названием или id не найден").ShowDialog();
  119. return;
  120. }
  121. int stationId;
  122. if (Functions.IsOnlyDigits(RoutesStationsIdStationBox.Text) && cnt.db.Stations.Select(item => item.IdStation).Contains(Convert.ToInt32(RoutesStationsIdStationBox.Text)))
  123. stationId = Convert.ToInt32(RoutesStationsIdStationBox.Text);
  124. else if (cnt.db.Stations.Select(item => item.Name).Contains(RoutesStationsIdStationBox.Text))
  125. stationId = cnt.db.Routes.Where(item => item.Name == RoutesStationsIdStationBox.Text).Select(item => item.IdRoute).FirstOrDefault();
  126. else
  127. {
  128. new ErrorWindow("Станция с таким названием или id не найдена").ShowDialog();
  129. return;
  130. }
  131. if(Functions.IsHHMMTimeSpanFromStringCorrect(RoutesStationsStopTimeBox.Text))
  132. {
  133. new ErrorWindow("Строка с временем остановки имела неверный формат").ShowDialog();
  134. return;
  135. }
  136. if(Functions.IsHHMMTimeSpanFromStringCorrect(RoutesStationsTravelTimeBox.Text))
  137. {
  138. new ErrorWindow("Строка с временем пути имела неверный формат").ShowDialog();
  139. return;
  140. }
  141. cnt.db.RoutesStations.Add(new RoutesStations()
  142. {
  143. IdRouteStation = cnt.db.RoutesStations.Select(p => p.IdRouteStation).DefaultIfEmpty(0).Max() + 1,
  144. IdRoute = routeId,
  145. IdStation = stationId,
  146. StopTime = new TimeSpan(Convert.ToInt32(RoutesStationsStopTimeBox.Text.Substring(0, 2)), Convert.ToInt32(RoutesStationsStopTimeBox.Text.Substring(3, 2)), 0),
  147. TravelTime = new TimeSpan(Convert.ToInt32(RoutesStationsTravelTimeBox.Text.Substring(0, 2)), Convert.ToInt32(RoutesStationsTravelTimeBox.Text.Substring(3, 2)), 0),
  148. });
  149. cnt.db.SaveChanges();
  150. new ErrorWindow("Успешно").ShowDialog();
  151. }
  152. catch (Exception ex)
  153. {
  154. new ErrorWindow(ex.Message).ShowDialog();
  155. }
  156. }
  157. private void CarriagesAddButton_Click(object sender, RoutedEventArgs e)
  158. {
  159. try
  160. {
  161. int trainId;
  162. if (Functions.IsOnlyDigits(CarriagesIdTrainBox.Text) && cnt.db.Trains.Select(item => item.IdTrain).Contains(Convert.ToInt32(CarriagesIdTrainBox.Text)))
  163. trainId = Convert.ToInt32(CarriagesIdTrainBox.Text);
  164. else if (cnt.db.Trains.Select(item => item.Name).Contains(CarriagesIdTrainBox.Text))
  165. trainId = cnt.db.Trains.Where(item => item.Name == CarriagesIdTrainBox.Text).Select(item => item.IdTrain).FirstOrDefault();
  166. else
  167. {
  168. new ErrorWindow("Поезд с таким названием или id не найден").ShowDialog();
  169. return;
  170. }
  171. if (Functions.IsOnlyDigits(CarriagesPlacesBox.Text))
  172. {
  173. new ErrorWindow("Строка с количеством мест имела неверный формат").ShowDialog();
  174. return;
  175. }
  176. cnt.db.Carriages.Add(new Carriages()
  177. {
  178. IdCarriage = cnt.db.Carriages.Select(p => p.IdCarriage).DefaultIfEmpty(0).Max() + 1,
  179. IdTrain = trainId,
  180. Places = Convert.ToInt32(CarriagesPlacesBox.Text),
  181. Category = CarriagesCategoryBox.Text
  182. });
  183. cnt.db.SaveChanges();
  184. new ErrorWindow("Успешно").ShowDialog();
  185. }
  186. catch (Exception ex)
  187. {
  188. new ErrorWindow(ex.Message).ShowDialog();
  189. }
  190. }
  191. private void RoutesStationsTabItemClick(object sender, MouseButtonEventArgs e)
  192. {
  193. RoutesStationsDataGrid.ItemsSource = cnt.db.RoutesStations.ToList();
  194. }
  195. private void CarriagesTabItemClick(object sender, MouseButtonEventArgs e)
  196. {
  197. CarriagesDataGrid.ItemsSource = cnt.db.Carriages.ToList();
  198. }
  199. private void RoutesTabItemClick(object sender, MouseButtonEventArgs e)
  200. {
  201. RoutesDataGrid.ItemsSource = cnt.db.Routes.ToList();
  202. }
  203. private void StationsTabItemClick(object sender, MouseButtonEventArgs e)
  204. {
  205. StationsDataGrid.ItemsSource = cnt.db.Stations.ToList();
  206. }
  207. private void TripsTabItemClick(object sender, MouseButtonEventArgs e)
  208. {
  209. TripsDataGrid.ItemsSource = cnt.db.Trips.ToList();
  210. }
  211. private void TrainsTabItemClick(object sender, MouseButtonEventArgs e)
  212. {
  213. TrainsDataGrid.ItemsSource = cnt.db.Trains.ToList();
  214. }
  215. }
  216. }