/// <inheritdoc /> public bool SetActivationStatus(ISimplyAPlugin plugin, bool value) { var plugins = LoadPluginSettings().ToArray(); var entry = plugins.SingleOrDefault(p => p.Name == GetPluginName(plugin)); if (entry == null) { return(value); } var newValue = value || _pluginBasicConfigHelper.GetForcedPlugins().Contains(entry.Name); if (newValue != entry.IsActive) { if (newValue) { try { plugin.OnActivation(); } catch { newValue = false; } } else { try { plugin.OnDeactivation(); } catch { //Just too bad ! } } entry.IsActive = newValue; } SavePluginSettings(plugins); return(newValue); }
/// <summary> /// LoadPlugins /// </summary> protected virtual void LoadPlugins() { PluginsCatalog = PluginService.LoadPlugins(PluginsCatalog, GetPluginPaths(), InstanceResolverHelper, CreateRegistrantFinderBuilder(), PluginBasicConfigHelper.GetForcedPlugins()); var catalog = PluginsCatalog.ToArray(); foreach (var resourceDictionary in catalog.Where(x => x.IsNew && x.IsForeground).SelectMany(x => x.ForegroundPlugin.ResourceDictionaries)) { Application.Current.Resources.MergedDictionaries.Add(resourceDictionary); } PluginService.ActivateNewPlugins(catalog); }