AddEditPage.xaml.cs 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  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 System.Linq.Expressions;
  16. using System.Data.Entity.Migrations;
  17. namespace ROGOZ.Pages
  18. {
  19. /// <summary>
  20. /// Логика взаимодействия для AddEditPage.xaml
  21. /// </summary>
  22. public partial class AddEditPage : Page
  23. {
  24. private user1Entities _context = new user1Entities();
  25. private List<User> listUsers = new List<User>();
  26. private Task _currentTask = null;
  27. public AddEditPage()
  28. {
  29. InitializeComponent();
  30. DataContext = _currentTask;
  31. CmbStatus.ItemsSource = Status.FillStatus();
  32. CmbTaskType.ItemsSource = WorkType.FillWorkType();
  33. //foreach (var user in _context.User.ToList())
  34. //{
  35. // listUsers.Add(user.getFamilia());
  36. //}
  37. //CmbExecutor.ItemsSource = listUsers;
  38. //listUsers = _context.User.ToList();
  39. //CmbExecutor.ItemsSource = listUsers;
  40. //CmbExecutor.ItemsSource = listUsers.Select(user => user.getFamilia());
  41. //CmbExecutor.DisplayMemberPath = "getFamilia";
  42. }
  43. public AddEditPage(Task selectedTask)
  44. {
  45. InitializeComponent();
  46. _currentTask = selectedTask;
  47. CmbStatus.ItemsSource = Status.FillStatus();
  48. //CmbExecutor.ItemsSource = user1Entities.GetContext().User.ToList();
  49. CmbTaskType.ItemsSource = WorkType.FillWorkType();
  50. if (selectedTask != null)
  51. _currentTask = selectedTask;
  52. DataContext = _currentTask;
  53. //foreach (var user in _context.User.ToList())
  54. //{
  55. // listUsers.Add(user.getFamilia());
  56. //}
  57. //CmbExecutor.ItemsSource = listUsers;
  58. //CmbExecutor.ItemsSource = _currentTask.Executor.User.getFamilia();
  59. listUsers = _context.User.ToList();
  60. CmbExecutor.ItemsSource = listUsers;
  61. //CmbExecutor.ItemsSource = listUsers.Select(user => user.getFamilia());
  62. //CmbExecutor.DisplayMemberPath = "getFamilia";
  63. //CmbExecutor.ItemsSource = listUsers.Select(user => user.getFamilia());
  64. }
  65. private void BtnCancel_Click(object sender, RoutedEventArgs e)
  66. {
  67. NavigationService.GoBack();
  68. }
  69. private string CheckErrors()
  70. {
  71. var errorBuilder = new StringBuilder();
  72. if (string.IsNullOrWhiteSpace(TaskNameTB.Text))
  73. errorBuilder.AppendLine("Укажите название заголовка!");
  74. if (CmbStatus.Text == null)
  75. errorBuilder.AppendLine("Выберите статус!");
  76. if (CmbTaskType.Text == null)
  77. errorBuilder.AppendLine("Выберите характеристику!");
  78. if (errorBuilder.Length > 0) //проверка на ошибку
  79. {
  80. MessageBox.Show(errorBuilder.ToString());
  81. return errorBuilder.ToString();
  82. }
  83. else return null;
  84. }
  85. private void BtnSaveTask_Click(object sender, RoutedEventArgs e)
  86. {
  87. if (CheckErrors() == null)
  88. {
  89. if (_currentTask == null)
  90. {
  91. try
  92. {
  93. var selectedTask = new Task
  94. {
  95. //ExecutorID = int.Parse(CmbExecutor.SelectedItem.ToString()),
  96. ExecutorID = (CmbExecutor.SelectedItem as User)?.ID ?? 0,
  97. Title = TaskNameTB.Text,
  98. Description = TaskDescriptionTB.Text,
  99. CreateDateTime = DateTime.Parse(DPCreateDateTime.Text),
  100. Deadline = DateTime.Parse(DPDeadLine.Text),
  101. Difficulty = Double.Parse(DifficultyTB.Text),
  102. Time = int.Parse(TimeTB.Text),
  103. Status = CmbStatus.Text,
  104. WorkType = CmbTaskType.Text,
  105. IsDeleted = false
  106. };
  107. user1Entities.GetContext().Task.Add(selectedTask);
  108. user1Entities.GetContext().SaveChanges();
  109. MessageBox.Show("Задача добавлена");
  110. NavigationService.GoBack();
  111. //var selectedUser = listUsers.FirstOrDefault(user => user.getFamilia() == CmbExecutor.SelectedItem.ToString());
  112. //if (selectedUser != null)
  113. //{
  114. // var selectedTask = new Task
  115. // {
  116. // //ExecutorID = int.Parse(CmbExecutor.SelectedItem.ToString()),
  117. // ExecutorID = (CmbExecutor.SelectedItem as User)?.ID ?? 0,
  118. // //ExecutorID = selectedUser.ID,
  119. // Title = TaskNameTB.Text,
  120. // Description = TaskDescriptionTB.Text,
  121. // CreateDateTime = DateTime.Parse(DPCreateDateTime.Text),
  122. // Deadline = DateTime.Parse(DPDeadLine.Text),
  123. // Difficulty = Double.Parse(DifficultyTB.Text),
  124. // Time = int.Parse(TimeTB.Text),
  125. // Status = CmbStatus.Text,
  126. // WorkType = CmbTaskType.Text,
  127. // IsDeleted = false
  128. // };
  129. // user1Entities.GetContext().Task.Add(selectedTask);
  130. // user1Entities.GetContext().SaveChanges();
  131. // MessageBox.Show("Задача добавлена");
  132. // NavigationService.GoBack();
  133. //}
  134. //else
  135. //{
  136. // MessageBox.Show("Выберите исполнителя!");
  137. //}
  138. }
  139. catch
  140. {
  141. MessageBox.Show(CheckErrors(), "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  142. }
  143. }
  144. else
  145. {
  146. var context = user1Entities.GetContext();
  147. context.SaveChanges();
  148. MessageBox.Show("Задача отредактирована");
  149. NavigationService.GoBack();
  150. }
  151. }
  152. }
  153. }
  154. }