53 lines
2.2 KiB
C#
53 lines
2.2 KiB
C#
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<PhisicalPersonViewModel> _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;
|
|
}
|
|
}
|
|
}
|
|
}
|