6

在 Migrations.cs 中,如果启用了一个模块,我想禁用它,如果尚未启用,则启用另一个模块。我怎样才能做到这一点?

4

2 回答 2

8

好的,我通过查看 Orchard.Modules 中的 Controller 和 Command 类发现了这一点。首先,我必须添加对 Orchard.Modules 的项目引用,然后在 Migrations.cs 中:

    public int UpdateFrom2() {
        var features = _moduleService.GetAvailableFeatures().ToDictionary(m=>m.Descriptor.Id, m=>m);
        if (features.ContainsKey("TinyMce") && features["TinyMce"].IsEnabled) {
            _moduleService.DisableFeatures(new string[] { "TinyMce" });
        }

        if (features.ContainsKey("TinyMceDeluxe") && !features["TinyMceDeluxe"].IsEnabled) {
            _moduleService.EnableFeatures(new string[] { "TinyMceDeluxe" });
        }

        return 3; 
    }
于 2012-10-24T20:18:38.840 回答
1

我认为您应该看一下 Orchard 工具:您可以启用和禁用功能并获取已启用功能的列表。查看 Orchard.Modules 项目中的 FeatureCommands.cs。希望这对您有所帮助。

于 2012-10-24T20:17:37.827 回答