using EmployeeManagmentContracts.BusinessLogicContracts; using EmployeeManagmentContracts.ViewModels; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; namespace EmployeeManagmentView.Employee.Vacation { /// /// Логика взаимодействия для DeleteVacationWindow.xaml /// public partial class DeleteVacationWindow : Window { private readonly IVacationLogic _vacationLogic; private IEnumerable _allVacations; public DeleteVacationWindow(IVacationLogic vacationLogic) { _vacationLogic = vacationLogic; InitializeComponent(); LoadVacations(); } private void LoadVacations() { _allVacations = _vacationLogic.GetFullList(); // Загрузка всех данных VacationsDataGrid.ItemsSource = _allVacations; } private void DeleteButton_Click(object sender, RoutedEventArgs e) { if (VacationsDataGrid.SelectedItem is VacationViewModel selectedVacation) { // Удаление отпуска _vacationLogic.Delete(selectedVacation.Id); MessageBox.Show("Отпуск успешно удален!"); LoadVacations(); // Перезагрузка данных после удаления SearchTextBox.Text = string.Empty; // Очистка поля поиска } else { MessageBox.Show("Пожалуйста, выберите запись для удаления."); } } private void SearchTextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e) { string query = SearchTextBox.Text.ToLower(); if (string.IsNullOrWhiteSpace(query)) { // Отображаем все записи VacationsDataGrid.ItemsSource = _allVacations; } else { // Фильтрация по всем полям сущности var filteredList = _allVacations.Where(vac => (vac.EmployeeName?.ToLower().Contains(query) ?? false) || (vac.StartData.ToString("dd.MM.yyyy").Contains(query)) || (vac.EndData.ToString("dd.MM.yyyy").Contains(query)) ).ToList(); VacationsDataGrid.ItemsSource = filteredList; } } } }