Kadr.Data.TimeSheet.GetStaffRecordsForDelete C# (CSharp) Method

GetStaffRecordsForDelete() public method

Возвращает список записей табеля для удаления (строки не соответствуют штатке)
public GetStaffRecordsForDelete ( IEnumerable staff, Dep dep ) : IEnumerable
staff IEnumerable Общий список штатных единиц
dep Dep
return IEnumerable
        public IEnumerable<TimeSheetFSWorkingDay> GetStaffRecordsForDelete(IEnumerable<GetFactStaffForTimeSheetResult> staff, Dep dep)
        {
            IEnumerable<TimeSheetFSWorkingDay> StaffTShRecords = DepsTShRecords.Invoke(KadrController.Instance.Model, dep.id, id).ToArray();

                    IEnumerable<TimeSheetFSWorkingDay> RecordsForDelete = StaffTShRecords.Except(
                (from st in GetInsertedStaff(staff)
                 join tsRec in TimeSheetFSWorkingDays
                   on new { id = (int?)st.idFactStaff, StaffCount = (double?)st.StaffCount }
                   equals new { id = (int?)tsRec.idFactStaff, StaffCount = (double?)tsRec.StaffCount }
                 select new
                 {
                     TSRecord = tsRec
                 }).Select(st => st.TSRecord)).ToArray();

            return RecordsForDelete;
        }