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();
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 TBoxSearch_TextChanged(object sender, TextChangedEventArgs e)
{
UpdateTasks();
}
//Очистка фильтров
private void ClearFilters_Click(object sender, RoutedEventArgs e)
{
CmbExecutorSort.SelectedIndex = -1;
CmbStatusSort.SelectedIndex = -1;
TBoxSearch.Clear();
}
private void UpdateTasks()
{
var tasks = user1Entities.GetContext().Task.ToList();
//сортировка по статусу
if (CmbStatusSort.SelectedIndex == -1 || CmbStatusSort.Text == null)
DGTasks.ItemsSource = tasks.OrderBy(p => p.Status).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();
//сортировка по поиску
DGTasks.ItemsSource = tasks.Where(p => p.Title.ToLower().Contains(TBoxSearch.Text.ToLower())).ToList(); //
}
//Сортировка по статусу
private void CmbStatusSort_LostFocus(object sender, RoutedEventArgs e)
{
var tasks = user1Entities.GetContext().Task.ToList();
if (CmbStatusSort.SelectedIndex != -1 )
DGTasks.ItemsSource = tasks.Where(p => p.Status == CmbStatusSort.Text).ToList();
}
private void CmbStatusSort_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
UpdateTasks();
}
}
}