public PositionGroupingViewModel(PositionGrouping positionGrouping, ReadOnlyObservableCollection <FilterViewModel> filters) { Position = positionGrouping.Position ?? throw new ArgumentNullException(nameof(positionGrouping), @"PositionGrouping cannot be null."); _filterVmCollection = filters ?? throw new ArgumentNullException(nameof(filters), @"filters cannot be null."); _employeeVmCollection = new ObservableCollection <EmployeeViewModel>( positionGrouping.Employees .Select(e => { var evm = new EmployeeViewModel(e); evm.PropertyChanged += OnIsModifyChanged; return(evm); }) ); EmployeeVmCollection = _employeeVmCollection.Where(ep => IsActivePredicate(ep) && PositionPredicate(ep) && AppointmentPredicate(ep) && ShiftPredicate(ep) && RankPredicate(ep) && IsSmokerPredicate(ep) ) .OrderBy(ep => ep.SecondName); }
private static string CalculatePercentage(PositionGrouping positionGrouping, TeamSeasonSimulationResult teamSeasonSimulationResult) { var count = teamSeasonSimulationResult.PositionGroupingCount(positionGrouping); return(count == 0 ? string.Empty : ((double)count / teamSeasonSimulationResult.Positions.Count * 100).ToString(".0")); }