/// <summary> /// Copies the specified folder id. /// </summary> /// <param name="folderId">The folder id.</param> /// <param name="parentId">The parent id.</param> public static void CopyRecursive(int folderId, int parentId) { Folder srcFolder = new Folder(folderId); Folder newFolder = (Folder)srcFolder.Clone(); newFolder.Save(); Move(newFolder, parentId); parentId = (int)newFolder.PrimaryKeyId.Value; TreeNode[] nodes = TreeManager.GetChildNodes(GetAssignedMetaClass(), folderId); foreach (TreeNode node in nodes) { CopyRecursive(node.ObjectId, parentId); } FolderElement[] elements = FolderElement.List <FolderElement>(FolderElement.GetAssignedMetaClass(), new FilterElement[] { new FilterElement("ParentId", FilterElementType.Equal, folderId) }); foreach (FolderElement element in elements) { FolderElement.Copy(element, parentId); } }