public async Task <List <OrganizationUnit> > FindChildrenAsync(long?parentId, bool recursive = false) { if (!recursive) { return(await OrganizationUnitRepository.GetAllListAsync(ou => ou.ParentId == parentId)); } if (!parentId.HasValue) { return(await OrganizationUnitRepository.GetAllListAsync()); } var code = await GetCodeAsync(parentId.Value); return(await OrganizationUnitRepository.GetAllListAsync( ou => ou.Code.StartsWith(code) && ou.Id != parentId.Value )); }