private static void MoveItemToDateFolder(Sitecore.Data.Items.Item topParent, Sitecore.Data.Items.Item toMove) { foreach (var item in toMove.Children.ToList()) { // Move the child item to a date based folder under the parentItem // Make a recursive call this method MoveItemToDateFolder(topParent, item); } // Now move the item itself if (ShouldMoveToDateFolder(toMove)) { var destinationFolder = GetDateFolderDestination(topParent, toMove); ItemManager.MoveItem(toMove, destinationFolder); } else if(ShouldDeleteInCreationOfBucket(toMove)) { toMove.Delete(); } }