Exemplo n.º 1
0
        /// <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);
            }
        }