从Migrations.cs,我想要禁用一个模块(如果已启用),如果尚未启用,则启用另一个模块。我怎样才能做到这一点?
答案 0 :(得分: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;
}
答案 1 :(得分:1)
我认为您应该查看Orchard工具:您可以启用和禁用功能并获取已启用功能的列表。查看Orchard.Modules项目中的FeatureCommands.cs。希望这会对你有所帮助。