EditAddTrainers.xaml.cs 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using SportComplex.Model;
  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.Data;
  10. using System.Windows.Documents;
  11. using System.Windows.Input;
  12. using System.Windows.Media;
  13. using System.Windows.Media.Imaging;
  14. using System.Windows.Navigation;
  15. using System.Windows.Shapes;
  16. using static System.Collections.Specialized.BitVector32;
  17. namespace SportComplex.Program.Pages.EditAddPages
  18. {
  19. /// <summary>
  20. /// Логика взаимодействия для EditAddTrainers.xaml
  21. /// </summary>
  22. public partial class EditAddTrainers : Page
  23. {
  24. // Поле для хранения экзепляра добавляемой тренера (передаем объект класса Trainers)
  25. private Trainers trainer = new Trainers();
  26. public EditAddTrainers(Trainers selectTrainer)
  27. {
  28. InitializeComponent();
  29. // Заполнение ComboBox названиями секций
  30. SelectIDSectionCbx.ItemsSource = Entities.GetContext().Section.ToList();
  31. SelectIDSectionCbx.SelectedValuePath = "ID_section";
  32. SelectIDSectionCbx.DisplayMemberPath = "name";
  33. if (selectTrainer != null)
  34. trainer = selectTrainer;
  35. // Передача объекта класса для участия в привязке данных
  36. DataContext = trainer;
  37. }
  38. // Вернуться на предыдущую страницу
  39. private void BackBtn_Click(object sender, RoutedEventArgs e)
  40. {
  41. NavigationService.Navigate(new View());
  42. }
  43. // Сохранение изменений
  44. private void SaveTrainerBtn_Click(object sender, RoutedEventArgs e)
  45. {
  46. // Предварительная проверка на количесто символов, заполняемость
  47. StringBuilder errors = new StringBuilder();
  48. if (SelectIDSectionCbx.SelectedIndex == -1)
  49. errors.AppendLine("* Не указана секция!");
  50. if (string.IsNullOrWhiteSpace(trainer.lfname))
  51. errors.AppendLine("* ФИ (Фамилия, Имя) тренера не введено!");;
  52. if (string.IsNullOrWhiteSpace(trainer.login))
  53. errors.AppendLine("* Логин не введен!");
  54. foreach (var record in Entities.GetContext().Trainers)
  55. {
  56. if (record.login == trainer.login)
  57. errors.AppendLine("* Такой логин тренера уже существует!");
  58. }
  59. if (string.IsNullOrWhiteSpace(trainer.passwd))
  60. errors.AppendLine("* Пароль не введен!");
  61. // Если есть ошибки, то вывести это
  62. if (errors.Length > 0)
  63. {
  64. MessageBox.Show(errors.ToString());
  65. return;
  66. }
  67. // Добавить новую запись
  68. if (trainer.ID_trainer == 0)
  69. Entities.GetContext().Trainers.Add(trainer);
  70. try
  71. {
  72. Entities.GetContext().SaveChanges();
  73. MessageBox.Show("Данные сохранены");
  74. NavigationService.Navigate(new View());
  75. }
  76. catch (Exception ex)
  77. { MessageBox.Show(ex.Message); }
  78. }
  79. }
  80. }