Przeglądaj źródła

Настроено удаление задач из базы данных (+ Попытка добавления задач в базу данных)

Данилов Денис 1 rok temu
rodzic
commit
35e0d54c8d

+ 2 - 0
esoft/Entities/User.cs

@@ -14,6 +14,8 @@ namespace esoft.Entities
     
     public partial class User
     {
+        public string Name => $"{FirstName} {MiddleName} {LastName}";
+
         public int ID { get; set; }
         public string Password { get; set; }
         public string FirstName { get; set; }

+ 57 - 0
esoft/Pages/AddEditServicePage.xaml.cs

@@ -46,7 +46,64 @@ namespace esoft.Pages
 
         private void BtnSaveTask_Click(object sender, RoutedEventArgs e)
         {
+            // Получение значений из элементов управления формы
+            string title = TBoxTitle.Text;
+            string executorName = cbExecutor.SelectedItem?.ToString();
+            string managerName = cbManager.SelectedItem?.ToString();
+            string status = cbStatus.Text;
+            int complexity = (int)IUDComplexityTask.Value;
+            int time = (int)IUDTimeTask.Value;
+            string nature = cbNatureTask.SelectedItem?.ToString();
+            string description = TBoxDescription.Text;
+            DateTime createDate = DPickerDateCreate.SelectedDate ?? DateTime.Now;
+            DateTime deadline = DPickerDateDeadLine.SelectedDate ?? DateTime.Now;
 
+            // Проверка на заполнение обязательных полей
+            if (string.IsNullOrWhiteSpace(title) || string.IsNullOrWhiteSpace(executorName) || string.IsNullOrWhiteSpace(managerName) || string.IsNullOrWhiteSpace(status))
+            {
+                MessageBox.Show("Пожалуйста, заполните все обязательные поля!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+                return;
+            }
+
+            // Поиск исполнителя и менеджера по их именам в контексте
+            var executor = actualContext.Executor.FirstOrDefault(ex => ex.User.Name == executorName);
+            var manager = actualContext.Manager.FirstOrDefault(m => m.User.Name == managerName);
+
+            // Проверка на наличие исполнителя и менеджера
+            if (executor == null || manager == null)
+            {
+                MessageBox.Show("Исполнитель или менеджер не найден!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+                return;
+            }
+
+            // Создание новой задачи на основе введенных данных
+            esoft.Entities.Task newTask = new esoft.Entities.Task
+            {
+                Title = title,
+                ExecutorID = executor.ID,
+                // Добавьте или измените свойства для ManagerID, если это необходимо
+                Status = status,
+                Difficulty = complexity,
+                Time = time,
+                WorkType = nature,
+                Description = description,
+                CreateDateTime = createDate,
+                Deadline = deadline
+            };
+
+            // Добавление задачи в контекст базы данных
+            var context = esoftEntities.GetContext();
+            context.Task.Add(newTask);
+
+            try
+            {
+                context.SaveChanges(); // Сохранение изменений в базе данных
+                MessageBox.Show("Задача успешно добавлена!", "Успех", MessageBoxButton.OK, MessageBoxImage.Information);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show($"Ошибка при добавлении задачи: {ex.Message}", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+            }
         }
     }
 }

+ 22 - 1
esoft/Pages/ServicesPage.xaml.cs

@@ -48,7 +48,28 @@ namespace esoft.Pages
 
         private void BtnDeleteTask_Click(object sender, RoutedEventArgs e)
         {
-
+            if (DGridTask.SelectedItem is TaskFill selectedTask)
+            {
+                MessageBoxResult result = MessageBox.Show("Вы уверены, что хотите удалить выбранную задачу?",
+                                                          "Подтверждение удаления",
+                                                          MessageBoxButton.YesNo,
+                                                          MessageBoxImage.Question);
+
+                if (result == MessageBoxResult.Yes)
+                {
+                    var context = esoftEntities.GetContext();
+
+                    // Находим задачу по ID или другому уникальному идентификатору
+                    var taskToDelete = context.Task.FirstOrDefault(task => task.ID == selectedTask.ID);
+
+                    if (taskToDelete != null)
+                    {
+                        context.Task.Remove(taskToDelete);
+                        context.SaveChanges(); // Сохраняем изменения в базе данных
+                        DGridTask.ItemsSource = Class.TaskFill.TaskFills(); // Обновляем DataGrid
+                    }
+                }
+            }
         }
 
         private void FilterTasks()