public void ImportSiteTemplateToEmptySite(int siteId, string siteTemplateDir, bool isImportContents, bool isImportTableStyles, string administratorName) { var siteTemplatePath = PathUtility.GetSiteTemplatesPath(siteTemplateDir); if (DirectoryUtils.IsDirectoryExists(siteTemplatePath)) { var templateFilePath = PathUtility.GetSiteTemplateMetadataPath(siteTemplatePath, DirectoryUtils.SiteTemplates.FileTemplate); var tableDirectoryPath = PathUtility.GetSiteTemplateMetadataPath(siteTemplatePath, DirectoryUtils.SiteTemplates.Table); var configurationFilePath = PathUtility.GetSiteTemplateMetadataPath(siteTemplatePath, DirectoryUtils.SiteTemplates.FileConfiguration); var siteContentDirectoryPath = PathUtility.GetSiteTemplateMetadataPath(siteTemplatePath, DirectoryUtils.SiteTemplates.SiteContent); var importObject = new ImportObject(siteId, administratorName); importObject.ImportFiles(siteTemplatePath, true); importObject.ImportTemplates(templateFilePath, true, administratorName); importObject.ImportConfiguration(configurationFilePath); var filePathList = ImportObject.GetSiteContentFilePathList(siteContentDirectoryPath); foreach (var filePath in filePathList) { importObject.ImportSiteContent(siteContentDirectoryPath, filePath, isImportContents); } if (isImportTableStyles) { importObject.ImportTableStyles(tableDirectoryPath); } importObject.RemoveDbCache(); } }
public async Task ImportSiteTemplateToEmptySiteAsync(Site site, string siteTemplateDir, bool isImportContents, bool isImportTableStyles, int adminId, string guid) { var siteTemplatePath = _pathManager.GetSiteTemplatesPath(siteTemplateDir); if (!DirectoryUtils.IsDirectoryExists(siteTemplatePath)) { return; } var templateFilePath = _pathManager.GetSiteTemplateMetadataPath(siteTemplatePath, DirectoryUtils.SiteFiles.SiteTemplates.FileTemplate); var tableDirectoryPath = _pathManager.GetSiteTemplateMetadataPath(siteTemplatePath, DirectoryUtils.SiteFiles.SiteTemplates.Table); var configurationFilePath = _pathManager.GetSiteTemplateMetadataPath(siteTemplatePath, DirectoryUtils.SiteFiles.SiteTemplates.FileConfiguration); var siteContentDirectoryPath = _pathManager.GetSiteTemplateMetadataPath(siteTemplatePath, DirectoryUtils.SiteFiles.SiteTemplates.SiteContent); var importObject = new ImportObject(_pathManager, _databaseManager, _caching, site, adminId); _caching.SetProcess(guid, $"导入站点文件: {siteTemplatePath}"); await importObject.ImportFilesAsync(siteTemplatePath, true, guid); _caching.SetProcess(guid, $"导入模板文件: {templateFilePath}"); await importObject.ImportTemplatesAsync(templateFilePath, true, adminId, guid); _caching.SetProcess(guid, $"导入配置文件: {configurationFilePath}"); await importObject.ImportConfigurationAsync(configurationFilePath, guid); var filePathList = ImportObject.GetSiteContentFilePathList(siteContentDirectoryPath); foreach (var filePath in filePathList) { _caching.SetProcess(guid, $"导入栏目文件: {filePath}"); await importObject.ImportSiteContentAsync(siteContentDirectoryPath, filePath, isImportContents, guid); } if (isImportTableStyles) { _caching.SetProcess(guid, $"导入表字段: {tableDirectoryPath}"); await importObject.ImportTableStylesAsync(tableDirectoryPath, guid); } }