using InvestTracker.Entities;
using Microsoft.EntityFrameworkCore;
using Prism.Commands;
using Prism.Mvvm;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace InvestTracker.VM
{
public class EmployeeBrowseVM : BindableBase
{
public DelegateCommand UndoCommand { get; set; }
public DelegateCommand SaveCommand { get; set; }
public DelegateCommand NewCommand { get; set; }
public DelegateCommand EditCommand { get; set; }
public DelegateCommand DeleteCommand { get; set; }
public DelegateCommand FindCommand { get; set; }
private InvestContext _dbContext;
private bool isDirty = false;
///
/// Список всех сотрудников
///
public ObservableCollection Employees { get; set; }
///
/// Список всех должностей для выбора в колонках
///
public ObservableCollection AllTitles { get; set; }
public EmployeeBrowseVM()
{
UndoCommand = new DelegateCommand(Undo_Executed, WhenDirty);
SaveCommand = new DelegateCommand(Save_Executed, WhenDirty);
NewCommand = new DelegateCommand(New_Executed, WhenClean);
EditCommand = new DelegateCommand(Edit_Executed, WhenClean);
DeleteCommand = new DelegateCommand(Delete_Executed, WhenClean);
FindCommand = new DelegateCommand(Find_Executed, WhenClean);
_dbContext = new InvestContext();
Employees = new ObservableCollection(_dbContext.Employees.ToList());
AllTitles = new ObservableCollection(_dbContext.Titles.ToList());
}
private void Undo_Executed()
{
MessageBox.Show("Undoing");
isDirty = true;
}
private void Save_Executed()
{
MessageBox.Show("Saving");
isDirty = false;
}
private void New_Executed()
{
MessageBox.Show("Adding...");
isDirty = true;
}
private void Edit_Executed()
{
MessageBox.Show("Editing...");
isDirty = true;
}
private void Delete_Executed()
{
MessageBox.Show("Deleting...");
isDirty = true;
}
private void Find_Executed()
{
MessageBox.Show("Searching...");
}
///
/// CanExecute когда isDirty = false
///
private bool WhenClean()
{
if (isDirty == false)
{
return true;
} else
{
return false;
}
}
///
/// CanExecute когда isDirty = true
///
private bool WhenDirty()
{
if (isDirty == true)
{
return true;
}
else
{
return false;
}
}
}
}