IEnumerable<Item> kids = FetchAllChildrenItems(Database.GetItem(rootItemId)).ToList();
private IEnumerable<Item> FetchAllChildrenItems(Item p_Item, bool p_ReturnRootItem = false)
{
if (p_ReturnRootItem) {
yield return p_Item;
}
foreach (IItemItem child in p_Item.GetChildren(ChildListOptions.SkipSorting))
{
foreach (IItemItem subChild in FetchAllChildrenItems(child, true)) {
yield return subChild;
}
}
}