public bool DeleteEmployee(long id) { return(doInTransaction( () => { var subordinates = employeeRepository.FindBySupervisorIds(new List <long> { id }); if (subordinates.Count != 0) { throw BusinessException.CannotDeleteEmployeeWithSubordinates( id, subordinates ); } return employeeRepository.Delete(id) != 0; } )); }