using EmployeeManagmentContracts.BusinessLogicContracts; using EmployeeManagmentContracts.ViewModels; using System.Linq; using System.Windows; namespace EmployeeManagmentView.PhysicalPerson { public partial class ViewPhysicalPersonsWindow : Window { private readonly IPhisicalPersonLogic _phisicalPersonLogic; private IEnumerable _allPersons; // Храним все записи для фильтрации public ViewPhysicalPersonsWindow(IPhisicalPersonLogic phisicalPersonLogic) { _phisicalPersonLogic = phisicalPersonLogic; InitializeComponent(); LoadPhysicalPersons(); } private void LoadPhysicalPersons() { _allPersons = _phisicalPersonLogic.GetFullList(); PhysicalPersonsDataGrid.ItemsSource = _allPersons; } private void SearchTextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e) { string searchQuery = SearchTextBox.Text.ToLower(); // Получаем текст для поиска if (string.IsNullOrWhiteSpace(searchQuery)) { // Если поле пустое, показываем все записи PhysicalPersonsDataGrid.ItemsSource = _allPersons; } else { // Фильтруем записи по всем полям var filteredList = _allPersons.Where(p => p.Name.ToLower().Contains(searchQuery) || p.Surname.ToLower().Contains(searchQuery) || p.Patronymic.ToLower().Contains(searchQuery) || // Поиск по ФИО p.Address.ToLower().Contains(searchQuery) || // Поиск по адресу p.Telephone.Contains(searchQuery) || // Поиск по телефону p.Gender.ToLower().Contains(searchQuery) || // Поиск по полу p.Birthday.ToString("dd.MM.yyyy").Contains(searchQuery) // Поиск по дате рождения ).ToList(); PhysicalPersonsDataGrid.ItemsSource = filteredList; } } } }