在Migrations.cs中,如果一个模块已经启用,我想要禁用它,如果另一个模块尚未启用,则启用它。我该如何做到这一点?
在Migrations.cs中,如果一个模块已经启用,我想要禁用它,如果另一个模块尚未启用,则启用它。我该如何做到这一点?
好的,我查看了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;
}