5

我有自定义代码,可以读取一堆 xml 文档并创建一个自定义数据导入配方,我使用 Orchard 中的 Import/Export 模块上传该配方。导入的文档属于我使用 Orchard 管理 UI 创建的内容类型“Api 文档”。现在,我想让这个配方文件生成代码成为自定义 Orchard 模块的一部分(如果这是正确的方法,我不确定)并让管理员用户执行以下操作:

  1. 使用管理仪表板部分中的表单上传需要通过配方文件生成器运行的 xml 文档

  2. 该表单将配方文件提交到导入/导出模块,以便它可以像往常一样执行其导入过程

处理这个问题的最佳方法是什么?我什至不确定创建自定义模块是正确的方法。如果我应该利用其他可扩展性选项,那就太好了。

4

1 回答 1

3

IImportExportService接口有一个名为Import

void Import(string recipeText);

生成配方后,您可以调用此方法,它将执行配方并更新外壳。

如果您只是在导入数据,那么如果我没记错的话,您可以在不更新 shell 的情况下离开(只有在功能已启用或禁用时才需要这样做) - 在这种情况下,您可以对IRecipeParserand进行几次调用IRecipeManager接口代替:

var recipe = _recipeParser.ParseRecipe(recipeText);
_recipeManager.Execute(recipe);

我写了一些类似的东西,它做了一些导入/导出,这样你就可以在站点之间移动内容;它还进行了一些加密,因此细节不会被窥探。一个很好的起点是阅读ImportExportService的源代码,因为它并不那么复杂。

于 2012-12-08T21:48:25.480 回答