improve API

This commit is contained in:
sbwalker
2026-03-06 11:44:29 -05:00
parent f09b21295a
commit aaffb7b84d
5 changed files with 17 additions and 23 deletions

View File

@@ -264,8 +264,7 @@ namespace Oqtane.Controllers
_userPermissions.IsAuthorized(User, module.SiteId, EntityNames.Folder, folderid, PermissionNames.Edit) && !string.IsNullOrEmpty(filename)) _userPermissions.IsAuthorized(User, module.SiteId, EntityNames.Folder, folderid, PermissionNames.Edit) && !string.IsNullOrEmpty(filename))
{ {
// get content // get content
module.IPortableContext = "Export Module"; var content = _modules.ExportModule(module, "Export Module");
var content = _modules.ExportModule(module);
// get folder // get folder
var folder = _folders.GetFolder(folderid, false); var folder = _folders.GetFolder(folderid, false);
@@ -318,8 +317,7 @@ namespace Oqtane.Controllers
var module = _modules.GetModule(moduleid); var module = _modules.GetModule(moduleid);
if (ModelState.IsValid && module != null && module.SiteId == _alias.SiteId && _userPermissions.IsAuthorized(User, module.SiteId, EntityNames.Page, pageid, PermissionNames.Edit)) if (ModelState.IsValid && module != null && module.SiteId == _alias.SiteId && _userPermissions.IsAuthorized(User, module.SiteId, EntityNames.Page, pageid, PermissionNames.Edit))
{ {
module.IPortableContext = "Import Module"; success = _modules.ImportModule(module, content, "Import Module");
success = _modules.ImportModule(module, content);
if (success) if (success)
{ {
_logger.Log(LogLevel.Information, this, LogFunction.Update, "Module Content Imported {ModuleId}", moduleid); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Module Content Imported {ModuleId}", moduleid);

View File

@@ -239,12 +239,10 @@ namespace Oqtane.Controllers
module = _modules.AddModule(module); module = _modules.AddModule(module);
// deep copy module content (includes settings) // deep copy module content (includes settings)
pm.Module.IPortableContext = "Copy Page"; string content = _modules.ExportModule(pm.Module, "Copy Page");
string content = _modules.ExportModule(pm.Module);
if (content != "") if (content != "")
{ {
module.IPortableContext = "Copy Page"; _modules.ImportModule(module, content, "Copy Page");
_modules.ImportModule(module, content);
} }
PageModule pagemodule = new PageModule(); PageModule pagemodule = new PageModule();
@@ -562,12 +560,10 @@ namespace Oqtane.Controllers
module = _modules.AddModule(module); module = _modules.AddModule(module);
// deep copy module content (includes settings) // deep copy module content (includes settings)
pm.Module.IPortableContext = "Copy Page"; string content = _modules.ExportModule(pm.Module, "Copy Page");
string content = _modules.ExportModule(pm.Module);
if (content != "") if (content != "")
{ {
module.IPortableContext = "Copy Page"; _modules.ImportModule(module, content, "Copy Page");
_modules.ImportModule(module, content);
} }
} }
else else

View File

@@ -149,12 +149,11 @@ namespace Oqtane.Infrastructure
// module content // module content
if (globalReplace.Content) if (globalReplace.Content)
{ {
pageModule.Module.IPortableContext = "Global Replace"; var content = moduleRepository.ExportModule(pageModule.Module, "Global Replace");
var content = moduleRepository.ExportModule(pageModule.Module);
if (!string.IsNullOrEmpty(content) && content.Contains(WebUtility.HtmlEncode(find), comparisonType)) if (!string.IsNullOrEmpty(content) && content.Contains(WebUtility.HtmlEncode(find), comparisonType))
{ {
content = content.Replace(WebUtility.HtmlEncode(find), WebUtility.HtmlEncode(replace), comparisonType); content = content.Replace(WebUtility.HtmlEncode(find), WebUtility.HtmlEncode(replace), comparisonType);
moduleRepository.ImportModule(pageModule.Module, content); moduleRepository.ImportModule(pageModule.Module, content, "Global Replace");
log += $"Module Content Updated: {pageModule.Title} Page: /{page.Path}<br />"; log += $"Module Content Updated: {pageModule.Title} Page: /{page.Path}<br />";
} }
} }

View File

@@ -20,9 +20,9 @@ namespace Oqtane.Repository
Module GetModule(int moduleId, bool tracking); Module GetModule(int moduleId, bool tracking);
void DeleteModule(int moduleId); void DeleteModule(int moduleId);
string ExportModule(int moduleId); string ExportModule(int moduleId);
string ExportModule(Module module); string ExportModule(Module module, string IPortableContext);
bool ImportModule(int moduleId, string content); bool ImportModule(int moduleId, string content);
bool ImportModule(Module module, string content); bool ImportModule(Module module, string content, string IPortableContext);
} }
public class ModuleRepository : IModuleRepository public class ModuleRepository : IModuleRepository
@@ -103,10 +103,10 @@ namespace Oqtane.Repository
public string ExportModule(int moduleId) public string ExportModule(int moduleId)
{ {
Module module = GetModule(moduleId); Module module = GetModule(moduleId);
return ExportModule(module); return ExportModule(module, "Export Module");
} }
public string ExportModule(Module module) public string ExportModule(Module module, string IPortableContext)
{ {
string content = ""; string content = "";
try try
@@ -132,6 +132,7 @@ namespace Oqtane.Repository
{ {
try try
{ {
module.IPortableContext = IPortableContext;
module.Settings = settings.ToDictionary(x => x.SettingName, x => x.SettingValue); module.Settings = settings.ToDictionary(x => x.SettingName, x => x.SettingValue);
var moduleobject = ActivatorUtilities.CreateInstance(_serviceProvider, moduletype); var moduleobject = ActivatorUtilities.CreateInstance(_serviceProvider, moduletype);
modulecontent.Content = ((IPortable)moduleobject).ExportModule(module); modulecontent.Content = ((IPortable)moduleobject).ExportModule(module);
@@ -158,10 +159,10 @@ namespace Oqtane.Repository
public bool ImportModule(int moduleId, string content) public bool ImportModule(int moduleId, string content)
{ {
Module module = GetModule(moduleId); Module module = GetModule(moduleId);
return ImportModule(module, content); return ImportModule(module, content, "Import Module");
} }
public bool ImportModule(Module module, string content) public bool ImportModule(Module module, string content, string IPortableContext)
{ {
bool success = false; bool success = false;
try try
@@ -216,6 +217,7 @@ namespace Oqtane.Repository
{ {
try try
{ {
module.IPortableContext = IPortableContext;
module.Settings = _settings.GetSettings(EntityNames.Module, module.ModuleId).ToDictionary(x => x.SettingName, x => x.SettingValue); module.Settings = _settings.GetSettings(EntityNames.Module, module.ModuleId).ToDictionary(x => x.SettingName, x => x.SettingValue);
var moduleobject = ActivatorUtilities.CreateInstance(_serviceProvider, moduletype); var moduleobject = ActivatorUtilities.CreateInstance(_serviceProvider, moduletype);
((IPortable)moduleobject).ImportModule(module, modulecontent.Content, modulecontent.Version); ((IPortable)moduleobject).ImportModule(module, modulecontent.Content, modulecontent.Version);

View File

@@ -535,8 +535,7 @@ namespace Oqtane.Repository
if (!string.IsNullOrEmpty(pageTemplateModule.Content)) if (!string.IsNullOrEmpty(pageTemplateModule.Content))
{ {
var module = _moduleRepository.GetModule(pageModule.ModuleId); var module = _moduleRepository.GetModule(pageModule.ModuleId);
module.IPortableContext = "Site Template"; if (!_moduleRepository.ImportModule(module, pageTemplateModule.Content, "Site Template"))
if (!_moduleRepository.ImportModule(module, pageTemplateModule.Content))
{ {
if (alias != null) if (alias != null)
{ {