AddEditPage.xaml.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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<string> listUsers = new List<string>();
  26. private Task _currentTask = null;
  27. public AddEditPage()
  28. {
  29. InitializeComponent();
  30. //DPCreateDateTime.SelectedDate = DateTime.Today;
  31. //DPDeadLine.SelectedDate = DateTime.Today;
  32. DataContext = _currentTask;
  33. CmbStatus.ItemsSource = Status.FillStatus();
  34. CmbTaskType.ItemsSource = WorkType.FillWorkType();
  35. foreach (var user in _context.User.ToList())
  36. {
  37. listUsers.Add(user.getFIO());
  38. }
  39. CmbExecutor.ItemsSource = listUsers;
  40. }
  41. public AddEditPage(Task selectedTask)
  42. {
  43. InitializeComponent();
  44. //DPCreateDateTime.DisplayDate = DateTime.Now.Date;
  45. //DPDeadLine.SelectedDate = DateTime.Today;
  46. _currentTask = selectedTask;
  47. CmbStatus.ItemsSource = Status.FillStatus();
  48. //CmbExecutor.ItemsSource = user1Entities.GetContext().Executor.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.getFIO());
  56. }
  57. CmbExecutor.ItemsSource = listUsers;
  58. }
  59. private void BtnCancel_Click(object sender, RoutedEventArgs e)
  60. {
  61. NavigationService.GoBack();
  62. }
  63. private string CheckErrors()
  64. {
  65. var errorBuilder = new StringBuilder();
  66. if (string.IsNullOrWhiteSpace(TaskNameTB.Text))
  67. errorBuilder.AppendLine("Укажите название заголовка!");
  68. if (CmbStatus.Text == null)
  69. errorBuilder.AppendLine("Выберите статус!");
  70. if (CmbTaskType.Text == null)
  71. errorBuilder.AppendLine("Выберите характеристику!");
  72. if (errorBuilder.Length > 0) //проверка на ошибку
  73. {
  74. MessageBox.Show(errorBuilder.ToString());
  75. return errorBuilder.ToString();
  76. }
  77. else return null;
  78. }
  79. private void BtnSaveTask_Click(object sender, RoutedEventArgs e)
  80. {
  81. //var errorMessage = CheckErrors();
  82. if (CheckErrors() == null)
  83. {
  84. if (_currentTask == null)
  85. {
  86. try
  87. {
  88. var selectedTask = new Task
  89. {
  90. ExecutorID = int.Parse(CmbExecutor.Text),
  91. Title = TaskNameTB.Text,
  92. Description = TaskDescriptionTB.Text,
  93. CreateDateTime = DateTime.Parse(DPCreateDateTime.Text),
  94. Deadline = DateTime.Parse(DPDeadLine.Text),
  95. Difficulty = Double.Parse(DifficultyTB.Text),
  96. Time = int.Parse(TimeTB.Text),
  97. Status = CmbStatus.Text,
  98. WorkType = CmbTaskType.Text,
  99. IsDeleted = false
  100. };
  101. user1Entities.GetContext().Task.Add(selectedTask);
  102. user1Entities.GetContext().SaveChanges();
  103. MessageBox.Show("Задача добавлена");
  104. NavigationService.GoBack();
  105. }
  106. catch
  107. {
  108. MessageBox.Show(CheckErrors(), "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  109. }
  110. }
  111. else
  112. {
  113. var context = user1Entities.GetContext();
  114. context.SaveChanges();
  115. MessageBox.Show("Задача отредактирован");
  116. NavigationService.GoBack();
  117. }
  118. }
  119. }
  120. }
  121. }