private static void DoJob(Item item, bool recursive, OperationForItem operation) { item.Reload(); operation(item); if (recursive) { foreach (Item childItem in item.Children) { DoJob(childItem, true, operation); } } }
private static void IterateItems(Item item, bool recursive, bool allVersions, OperationForItem operation) { item.Reload(); if (allVersions) { Item[] versions = GetAllVersionsWithMedia(item); if (versions != null) { foreach (Item version in versions) { operation(version); } } } else { operation(item); } if (recursive) { foreach (Item childItem in item.Children) { IterateItems(childItem, true, allVersions, operation); } } }