MainWindow.xaml.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. using CRUD_baseEF.Model_EF;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Windows;
  8. using System.Windows.Controls;
  9. using System.Windows.Controls.Primitives;
  10. using System.Windows.Data;
  11. using System.Windows.Documents;
  12. using System.Windows.Input;
  13. using System.Windows.Media;
  14. using System.Windows.Media.Imaging;
  15. using System.Windows.Navigation;
  16. using System.Windows.Shapes;
  17. using System.Xml.Linq;
  18. namespace CRUD_baseEF
  19. {
  20. /// <summary>
  21. /// Логика взаимодействия для MainWindow.xaml
  22. /// </summary>
  23. ///
  24. public partial class MainWindow : Window
  25. {
  26. Entities entities = new Entities();
  27. public MainWindow()
  28. {
  29. InitializeComponent();
  30. /* Передача items в ListBox */
  31. foreach (var item in entities.ManufacturedMachines)
  32. lbox_machines.Items.Add(item);
  33. /* Передача items в ComboBox */
  34. foreach (var item in entities.TypeMachine)
  35. cbox_type.Items.Add(item);
  36. }
  37. /* Отображение данных после нажатия на запись */
  38. private void lbox_machines_SelectionChanged(object sender, SelectionChangedEventArgs e)
  39. {
  40. var selectItem = lbox_machines.SelectedItem as ManufacturedMachines;
  41. if (selectItem != null)
  42. {
  43. tbox_name.Text = selectItem.nameMachine;
  44. cbox_type.SelectedItem = (from type in entities.TypeMachine
  45. where type.typeMachine_ID == selectItem.typeMachine_ID
  46. select type).Single<TypeMachine>();
  47. dpic_date.Text = selectItem.makingDate;
  48. }
  49. else
  50. {
  51. tbox_name.Text = "";
  52. cbox_type.SelectedIndex = -1;
  53. dpic_date.Text = "";
  54. }
  55. }
  56. /* Изменение/Добавление данных */
  57. private void btn_addEdit_Click(object sender, RoutedEventArgs e)
  58. {
  59. var selectItem = lbox_machines.SelectedItem as ManufacturedMachines;
  60. if (tbox_name.Text == "" || cbox_type.SelectedIndex == -1 || dpic_date.Text == "")
  61. MessageBox.Show("Ошибка! Введите данные в поля");
  62. else
  63. {
  64. if (selectItem == null) // добавление новой записи
  65. {
  66. selectItem = new ManufacturedMachines();
  67. entities.ManufacturedMachines.Add(selectItem);
  68. lbox_machines.Items.Add(selectItem);
  69. }
  70. selectItem.nameMachine = tbox_name.Text;
  71. selectItem.typeMachine_ID = (cbox_type.SelectedItem as TypeMachine).typeMachine_ID;
  72. selectItem.makingDate = dpic_date.Text;
  73. try
  74. {
  75. entities.SaveChanges();
  76. lbox_machines.Items.Refresh();
  77. MessageBox.Show("Запись успешно сохранена");
  78. }
  79. catch (Exception ex)
  80. {
  81. MessageBox.Show(ex.Message);
  82. }
  83. }
  84. }
  85. /* Удаление данных */
  86. private void btn_delete_Click(object sender, RoutedEventArgs e)
  87. {
  88. var selectItem = lbox_machines.SelectedItem as ManufacturedMachines;
  89. if (selectItem != null)
  90. {
  91. var resultAnswer = MessageBox.Show("Вы точно хотите удалить запись?", "Удаление",
  92. MessageBoxButton.YesNo, MessageBoxImage.Question);
  93. if (resultAnswer == MessageBoxResult.No)
  94. return;
  95. lbox_machines.Items.Remove(selectItem);
  96. tbox_name.Clear();
  97. dpic_date.Text = "";
  98. entities.ManufacturedMachines.Remove(selectItem);
  99. try
  100. {
  101. entities.SaveChanges();
  102. lbox_machines.Items.Refresh();
  103. MessageBox.Show("Запись успешно удалена");
  104. }
  105. catch (Exception ex)
  106. {
  107. MessageBox.Show(ex.Message);
  108. }
  109. }
  110. else MessageBox.Show("Нет удаляемых объектов", "Ошибка");
  111. }
  112. /* Сброс действий */
  113. private void btn_discard_Click(object sender, RoutedEventArgs e)
  114. {
  115. lbox_machines.SelectedIndex = -1;
  116. tbox_name.Clear();
  117. cbox_type.SelectedIndex = -1;
  118. dpic_date.Text = "";
  119. }
  120. }
  121. }