/// <summary> /// Copies the specified folder element. /// </summary> /// <param name="folderElement">The folder element.</param> /// <param name="newParentId">The parent id.</param> public static void Copy(FolderElement folderElement, int parentId) { FolderElement newElement = null; BlobInfo blobInfo = folderElement.GetBlobInfo(); BlobInfo blobInfoNew = (BlobInfo)blobInfo.Clone(); blobInfoNew.Uid = Guid.NewGuid(); BlobStorageProvider provider = BlobStorage.Providers[folderElement.BlobStorageProvider]; using (Stream srcStream = provider.ReadStream(blobInfo)) { using (Stream dstStream = provider.CreateStream(blobInfoNew)) { BlobStreamHelper.WriteToStream(dstStream, srcStream, 0, srcStream.Length); provider.CommitStream(blobInfoNew); } } newElement = (FolderElement)folderElement.Clone(); newElement.BlobUid = blobInfoNew.Uid; newElement.Save(); Move(newElement, parentId); }