public string ExportChannels(List <int> channelIdList, string filePath) { var siteContentDirectoryPath = PathUtils.Combine(DirectoryUtils.GetDirectoryPath(filePath), PathUtils.GetFileNameWithoutExtension(filePath)); DirectoryUtils.DeleteDirectoryIfExists(siteContentDirectoryPath); DirectoryUtils.CreateDirectoryIfNotExists(siteContentDirectoryPath); var allChannelIdList = new List <int>(); foreach (var channelId in channelIdList) { if (!allChannelIdList.Contains(channelId)) { allChannelIdList.Add(channelId); var nodeInfo = ChannelManager.GetChannelInfo(_siteInfo.Id, channelId); var childChannelIdList = ChannelManager.GetChannelIdList(nodeInfo, EScopeType.Descendant, string.Empty, string.Empty, string.Empty); allChannelIdList.AddRange(childChannelIdList); } } var siteIe = new SiteIe(_siteInfo, siteContentDirectoryPath); foreach (var channelId in allChannelIdList) { siteIe.Export(_siteInfo.Id, channelId, true); } var imageUploadDirectoryPath = PathUtils.Combine(siteContentDirectoryPath, _siteInfo.Additional.ImageUploadDirectoryName); DirectoryUtils.DeleteDirectoryIfExists(imageUploadDirectoryPath); DirectoryUtils.Copy(PathUtils.Combine(_sitePath, _siteInfo.Additional.ImageUploadDirectoryName), imageUploadDirectoryPath); var videoUploadDirectoryPath = PathUtils.Combine(siteContentDirectoryPath, _siteInfo.Additional.VideoUploadDirectoryName); DirectoryUtils.DeleteDirectoryIfExists(videoUploadDirectoryPath); DirectoryUtils.Copy(PathUtils.Combine(_sitePath, _siteInfo.Additional.VideoUploadDirectoryName), videoUploadDirectoryPath); var fileUploadDirectoryPath = PathUtils.Combine(siteContentDirectoryPath, _siteInfo.Additional.FileUploadDirectoryName); DirectoryUtils.DeleteDirectoryIfExists(fileUploadDirectoryPath); DirectoryUtils.Copy(PathUtils.Combine(_sitePath, _siteInfo.Additional.FileUploadDirectoryName), fileUploadDirectoryPath); Atom.Core.AtomFeed feed = AtomUtility.GetEmptyFeed(); var entry = AtomUtility.GetEmptyEntry(); AtomUtility.AddDcElement(entry.AdditionalElements, "ImageUploadDirectoryName", _siteInfo.Additional.ImageUploadDirectoryName); AtomUtility.AddDcElement(entry.AdditionalElements, "VideoUploadDirectoryName", _siteInfo.Additional.VideoUploadDirectoryName); AtomUtility.AddDcElement(entry.AdditionalElements, "FileUploadDirectoryName", _siteInfo.Additional.FileUploadDirectoryName); feed.Entries.Add(entry); var uploadFolderPath = PathUtils.Combine(siteContentDirectoryPath, BackupUtility.UploadFolderName); DirectoryUtils.CreateDirectoryIfNotExists(uploadFolderPath); var uploadFilePath = PathUtils.Combine(uploadFolderPath, BackupUtility.UploadFileName); feed.Save(uploadFilePath); ZipUtils.PackFiles(filePath, siteContentDirectoryPath); DirectoryUtils.DeleteDirectoryIfExists(siteContentDirectoryPath); return(PathUtils.GetFileName(filePath)); }
public string ExportChannels(List <int> nodeIdList, string filePath) { var siteContentDirectoryPath = PathUtils.Combine(DirectoryUtils.GetDirectoryPath(filePath), PathUtils.GetFileNameWithoutExtension(filePath)); DirectoryUtils.DeleteDirectoryIfExists(siteContentDirectoryPath); DirectoryUtils.CreateDirectoryIfNotExists(siteContentDirectoryPath); var siteContentIe = new SiteContentIe(Fso.PublishmentSystemInfo, siteContentDirectoryPath); var allNodeIdList = new List <int>(); foreach (int nodeId in nodeIdList) { if (!allNodeIdList.Contains(nodeId)) { allNodeIdList.Add(nodeId); var nodeInfo = NodeManager.GetNodeInfo(Fso.PublishmentSystemId, nodeId); var childNodeIdList = DataProvider.NodeDao.GetNodeIdListByScopeType(nodeInfo, EScopeType.Descendant, string.Empty, string.Empty); allNodeIdList.AddRange(childNodeIdList); } } foreach (int nodeId in allNodeIdList) { siteContentIe.Export(Fso.PublishmentSystemId, nodeId, true); } var imageUploadDirectoryPath = PathUtils.Combine(siteContentDirectoryPath, this.Fso.PublishmentSystemInfo.Additional.ImageUploadDirectoryName); DirectoryUtils.DeleteDirectoryIfExists(imageUploadDirectoryPath); DirectoryUtils.Copy(PathUtils.Combine(this.Fso.PublishmentSystemPath, this.Fso.PublishmentSystemInfo.Additional.ImageUploadDirectoryName), imageUploadDirectoryPath); var videoUploadDirectoryPath = PathUtils.Combine(siteContentDirectoryPath, this.Fso.PublishmentSystemInfo.Additional.VideoUploadDirectoryName); DirectoryUtils.DeleteDirectoryIfExists(videoUploadDirectoryPath); DirectoryUtils.Copy(PathUtils.Combine(this.Fso.PublishmentSystemPath, this.Fso.PublishmentSystemInfo.Additional.VideoUploadDirectoryName), videoUploadDirectoryPath); var fileUploadDirectoryPath = PathUtils.Combine(siteContentDirectoryPath, this.Fso.PublishmentSystemInfo.Additional.FileUploadDirectoryName); DirectoryUtils.DeleteDirectoryIfExists(fileUploadDirectoryPath); DirectoryUtils.Copy(PathUtils.Combine(this.Fso.PublishmentSystemPath, this.Fso.PublishmentSystemInfo.Additional.FileUploadDirectoryName), fileUploadDirectoryPath); Atom.Core.AtomFeed feed = AtomUtility.GetEmptyFeed(); var entry = AtomUtility.GetEmptyEntry(); AtomUtility.AddDcElement(entry.AdditionalElements, "ImageUploadDirectoryName", this.Fso.PublishmentSystemInfo.Additional.ImageUploadDirectoryName); AtomUtility.AddDcElement(entry.AdditionalElements, "VideoUploadDirectoryName", this.Fso.PublishmentSystemInfo.Additional.VideoUploadDirectoryName); AtomUtility.AddDcElement(entry.AdditionalElements, "FileUploadDirectoryName", this.Fso.PublishmentSystemInfo.Additional.FileUploadDirectoryName); feed.Entries.Add(entry); var UploadFolderPath = PathUtils.Combine(siteContentDirectoryPath, BackupUtility.UploadFolderName); DirectoryUtils.CreateDirectoryIfNotExists(UploadFolderPath); var UploadFilePath = PathUtils.Combine(UploadFolderPath, BackupUtility.UploadFileName); feed.Save(UploadFilePath); ZipUtils.PackFiles(filePath, siteContentDirectoryPath); DirectoryUtils.DeleteDirectoryIfExists(siteContentDirectoryPath); return(PathUtils.GetFileName(filePath)); }