У меня есть таблица сотрудников. и у меня есть экран WPF. на экране я хочу иметь флажок «Исключить бывших сотрудников» (отмечен по умолчанию), когда он установлен, я генерирую отчет, в таблице нет бывшего сотрудника. но когда я снимаю флажок в окошке, я хочу видеть бывшего сотрудника.
См. в моем xaml:
<CheckBox Content="Exclude Former Employees" IsChecked="{Binding ExcludeFormerEmployees}" Margin="4" />
в ViewModel:
Моя команда кнопки создания отчета (для принять отчет о сотруднике.)
private void GenerateReports()
{
IsBusy = true;
var harmonyDatas = ConvertRawDatas(SelectedYear, SelectedMonths, SelectedEmployees);
harmonyDatas.ForEach(hd =>
{
if (_excludeWeekends) hd.ExcludeWeekends();
if (_excludePublicHolidays) hd.Exclude(_publicHolidays);
if (_excludeFormerEmployees) hd.ExcludeFormerEmployees();
});
ParticularEntries = harmonyDatas.SelectMany(hd => hd.Select(range => new EntryReportParticular
{
Employee = range.Employee,
Entry = range.Start,
Exit = range.End,
Region = range.Region
}));
DailyEntries = ParticularEntries.GroupBy(p => p.Employee.Id).SelectMany(pe => pe.GroupBy(peg => peg.Entry.Date).Select(peg =>
{
var firstPe = peg.First();
return new EntryReportDaily
{
Employee = firstPe.Employee,
Day = firstPe.Entry.Date,
TotalWorkingHours = peg.Sum(entry => entry.Duration.TotalHours)
};
}));
MonthlyEntries = MonthlyEntries = harmonyDatas.Select(hd => new EntryReportMonthly
{
Employee = hd.Employee,
NofWorkingDaysAtOrigLoc = hd.GetNofDaysInMonthAtOrigLoc(),
NofWorkingDaysAtOtherLoc = hd.GetNofDaysInMonthAtOtherLoc(),
TotalWorkingHoursAtOrigLoc = hd.GetMonthlyWorkingHoursAtOrigLoc(),
TotalWorkingHoursAtOtherLoc = hd.GetMonthlyWorkingHoursAtOtherLoc()
});
IsBusy = false;
}
#endregion
private bool _excludeFormerEmployees;
public bool ExcludeFormerEmployees
{
get { return _excludeFormerEmployees; }
set { Set(ref _excludeFormerEmployees, value); }
}
Команда кнопки «Создать отчет» (это отчеты сотрудников)
if (_excludeFormerEmployees) hd.ExcludeFormerEmployees();
в методе:
public void ExcludeFormerEmployees()
{
RemoveAll(ef => Employee.IsDelegation==false&& Employee.Status==0);
}
Спасибо за все ваши помощь.