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.Salary { /// /// Логика взаимодействия для DeleteSalaryWindow.xaml /// public partial class DeleteSalaryWindow : Window { private readonly ISalaryLogic _salaryLogic; private IEnumerable _allSalaries; public DeleteSalaryWindow(ISalaryLogic salaryLogic) { _salaryLogic = salaryLogic; InitializeComponent(); LoadSalaries(); } private void LoadSalaries() { _allSalaries = _salaryLogic.GetFullList(); // Загрузка всех данных SalariesDataGrid.ItemsSource = _allSalaries; } private void DeleteButton_Click(object sender, RoutedEventArgs e) { if (SalariesDataGrid.SelectedItem is SalaryViewModel selectedSalary) { // Удаление зарплаты _salaryLogic.Delete(selectedSalary.Id); MessageBox.Show("Зарплата успешно удалена!"); LoadSalaries(); // Перезагрузка данных после удаления 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)) { // Отображаем все записи SalariesDataGrid.ItemsSource = _allSalaries; } else { // Фильтрация по всем полям сущности var filteredList = _allSalaries.Where(sal => (sal.EmployeeName?.ToLower().Contains(query) ?? false) || sal.CountHours.ToString().Contains(query) || sal.PriceHour.ToString().Contains(query) || sal.Passed.ToString().ToLower().Contains(query) || (sal.Premium.HasValue && sal.Premium.Value.ToString().Contains(query)) || (sal.Date.HasValue && sal.Date.Value.ToString("dd.MM.yyyy").Contains(query)) ).ToList(); SalariesDataGrid.ItemsSource = filteredList; } } } }