using EmployeeManagmentBusinessLogic.BusinessLogic; 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 { /// /// Логика взаимодействия для ViewVacationWindow.xaml /// public partial class ViewVacationWindow : Window { private readonly IVacationLogic _vacationLogic; private readonly IEmployeeLogic _employeeLogic; private readonly IPhisicalPersonLogic _phisicalPersonLogic; private IEnumerable _allVacations; private List _employees; public ViewVacationWindow(IVacationLogic vacationLogic, IEmployeeLogic employeeLogic, IPhisicalPersonLogic phisicalPersonLogic) { _vacationLogic = vacationLogic; _employeeLogic = employeeLogic; _phisicalPersonLogic = phisicalPersonLogic; InitializeComponent(); LoadVacations(); } private void LoadVacations() { _allVacations = _vacationLogic.GetFullList(); // Загрузка всех данных VacationsDataGrid.ItemsSource = _allVacations; } 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)) || (vac.Passed.ToString().ToLower().Contains(query)) ).ToList(); VacationsDataGrid.ItemsSource = filteredList; } } } }