Prerequisites - Moved to PluginInfo and FeatureInfo

Features don't have instances until they are enabled so this made sense, Plugins followed suit for consistency's sake
This commit is contained in:
Robert committed 2021-04-28 17:06:47 +02:00
1 parent 0cfddcbbaf
commit 5cae14efd3
8 files changed
+66 -31

No files matched your search

@@ -27,12 +27,12 @@ namespace Artemis.UI.Screens.Plugins
if (pluginOrFeature is Plugin plugin)
{
Plugin = plugin;
Prerequisites = new BindableCollection<PluginPrerequisiteViewModel>(plugin.Prerequisites.Select(p => prerequisitesVmFactory.PluginPrerequisiteViewModel(p, false)));
Prerequisites = new BindableCollection<PluginPrerequisiteViewModel>(plugin.Info.Prerequisites.Select(p => prerequisitesVmFactory.PluginPrerequisiteViewModel(p, false)));
}
else if (pluginOrFeature is PluginFeature feature)
{
Feature = feature;
Prerequisites = new BindableCollection<PluginPrerequisiteViewModel>(feature.Prerequisites.Select(p => prerequisitesVmFactory.PluginPrerequisiteViewModel(p, false)));
Prerequisites = new BindableCollection<PluginPrerequisiteViewModel>(feature.Info.Prerequisites.Select(p => prerequisitesVmFactory.PluginPrerequisiteViewModel(p, false)));
}
else
throw new ArtemisUIException($"Expected plugin or feature to be passed to {nameof(PluginPrerequisitesInstallDialogViewModel)}");
@@ -136,7 +136,10 @@ namespace Artemis.UI.Screens.Plugins
protected override void OnInitialActivate()
{
CanInstall = false;
Task.Run(() => CanInstall = !Plugin.ArePrerequisitesMet());
if (Plugin != null)
Task.Run(() => CanInstall = !Plugin.Info.ArePrerequisitesMet());
else
Task.Run(() => CanInstall = !Feature.Info.ArePrerequisitesMet());
base.OnInitialActivate();
}
@@ -32,12 +32,12 @@ namespace Artemis.UI.Screens.Plugins
if (pluginOrFeature is Plugin plugin)
{
Plugin = plugin;
Prerequisites = new BindableCollection<PluginPrerequisiteViewModel>(plugin.Prerequisites.Select(p => prerequisitesVmFactory.PluginPrerequisiteViewModel(p, true)));
Prerequisites = new BindableCollection<PluginPrerequisiteViewModel>(plugin.Info.Prerequisites.Select(p => prerequisitesVmFactory.PluginPrerequisiteViewModel(p, true)));
}
else if (pluginOrFeature is PluginFeature feature)
{
Feature = feature;
Prerequisites = new BindableCollection<PluginPrerequisiteViewModel>(feature.Prerequisites.Select(p => prerequisitesVmFactory.PluginPrerequisiteViewModel(p, true)));
Prerequisites = new BindableCollection<PluginPrerequisiteViewModel>(feature.Info.Prerequisites.Select(p => prerequisitesVmFactory.PluginPrerequisiteViewModel(p, true)));
}
else
throw new ArtemisUIException($"Expected plugin or feature to be passed to {nameof(PluginPrerequisitesInstallDialogViewModel)}");
@@ -144,7 +144,10 @@ namespace Artemis.UI.Screens.Plugins
{
CanUninstall = false;
// Could be slow so take it off of the UI thread
Task.Run(() => CanUninstall = Plugin.Prerequisites.Any(p => p.IsMet()));
if (Plugin != null)
Task.Run(() => CanUninstall = Plugin.Info.Prerequisites.Any(p => p.IsMet()));
else
Task.Run(() => CanUninstall = Feature.Info.Prerequisites.Any(p => p.IsMet()));
base.OnInitialActivate();
}