public void DeleteByID(int ID) { StaffMember member = staff.Find(x => x.ID == ID); if (member == null) { throw new ValidationException("No record found for id"); } if ((member.GetType().Name == "Manager") && (((Manager)member).AssignedEmployees.Count != 0)) { throw new IntegrityViolationException("There are employees assigned to this manager", ((Manager)member).AssignedEmployees); } staff.Remove(member); }