AddPointWindow.xaml.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using System.Linq;
  2. using System.Windows;
  3. namespace Kusach
  4. {
  5. /// <summary>
  6. /// Логика взаимодействия для AddPointWindow.xaml
  7. /// </summary>
  8. public partial class AddPointWindow : Window
  9. {
  10. int routeId, pointId;
  11. public AddPointWindow(int id = -1)
  12. {
  13. InitializeComponent();
  14. routeId = id;
  15. }
  16. private void BackButton_Click(object sender, RoutedEventArgs e)
  17. {
  18. this.Close();
  19. }
  20. private void AddPointButton_Click(object sender, RoutedEventArgs e)
  21. {
  22. if (!Functions.IsValidNameAndLocationOfPoint(NameBox.Text, LocationBox.Text))
  23. MessageBox.Show("Поля не могут быть пустыми.");
  24. else
  25. {
  26. try
  27. {
  28. pointId = cnt.db.Points.Select(p => p.IdPoint).DefaultIfEmpty(0).Max() + 1;
  29. Points newPoint = new Points()
  30. {
  31. IdPoint = pointId,
  32. Name = NameBox.Text,
  33. location = LocationBox.Text
  34. };
  35. cnt.db.Points.Add(newPoint);
  36. cnt.db.SaveChanges();
  37. if (routeId != -1)
  38. {
  39. PointsList newPointRoute = new PointsList()
  40. {
  41. Id = cnt.db.PointsList.Select(p => p.Id).DefaultIfEmpty(0).Max() + 1,
  42. IdPoint = pointId,
  43. IdRoute = routeId
  44. };
  45. cnt.db.PointsList.Add(newPointRoute);
  46. }
  47. cnt.db.SaveChanges();
  48. this.Close();
  49. }
  50. catch
  51. {
  52. MessageBox.Show("Ошибка создания остановки.");
  53. this.Close();
  54. }
  55. }
  56. }
  57. }
  58. }