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.Navigation; using System.Windows.Shapes; namespace ROGOZ.Pages { /// /// Логика взаимодействия для TaskList.xaml /// public partial class TaskList : Page { private user1Entities _context = new user1Entities(); private List listUsers = new List(); public TaskList() { InitializeComponent(); CmbStatusSort.ItemsSource = Status.FillStatus(); CmbExecutorSort.ItemsSource = user1Entities.GetContext().Executor.ToList(); DGTasks.ItemsSource = user1Entities.GetContext().Task.ToList(); //DGTasks.ItemsSource = user1Entities.GetContext().Manager.ToList(); foreach (var user in _context.User.ToList()) { listUsers.Add(user.getFIO()); } CmbExecutorSort.ItemsSource = listUsers; } private void BtnAdd_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new AddEditPage(null)); } private void BtnEdit_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new AddEditPage((sender as Button).DataContext as Task)); } private void BtnDelTask_Click(object sender, RoutedEventArgs e) { var taskIsForRemoving = DGTasks.SelectedItems.Cast().ToList(); if (MessageBox.Show($"Вы точно хотите удалить {taskIsForRemoving.Count()} задач?", "Внимание",MessageBoxButton.YesNo, MessageBoxImage.Question)==MessageBoxResult.Yes) { try { user1Entities.GetContext().Task.RemoveRange(taskIsForRemoving); user1Entities.GetContext().SaveChanges(); MessageBox.Show("Данные удалены"); DGTasks.ItemsSource = user1Entities.GetContext().Task.ToList(); } catch (Exception ex) {MessageBox.Show(ex.Message.ToString());} } } private void CmbStatusSort_SelectionChanged(object sender, SelectionChangedEventArgs e) { UpdateTasks(); } private void TBoxSearch_TextChanged(object sender, TextChangedEventArgs e) { UpdateTasks(); } private void ClearFilters_Click(object sender, RoutedEventArgs e) { CmbExecutorSort.SelectedIndex = -1; CmbStatusSort.SelectedIndex = -1; TBoxSearch.Clear(); //UpdateTasks(); } private void UpdateTasks() { var tasks = user1Entities.GetContext().Task.ToList(); //var manager = user1Entities.GetContext().Executor.ToList(); //сортировка по статусу // работает но список обновляется после нажатия есчо раз if (CmbStatusSort.SelectedIndex == -1) tasks = tasks.OrderBy(p => p.Status).ToList(); else tasks = tasks.Where(p => p.Status == CmbStatusSort.Text).ToList(); //сортировка по исполнителю if (CmbExecutorSort.SelectedIndex == -1) tasks = tasks.OrderBy(p => p.Executor.User.MiddleName).ToList(); else tasks = tasks.Where(p => p.Executor.User.getFIO().ToString() == CmbStatusSort.Text).ToList(); //сортировка по поиску tasks = tasks.Where(p => p.Title.ToLower().Contains(TBoxSearch.Text.ToLower())).ToList(); // работает DGTasks.ItemsSource = tasks; } } }