/// <inheritdoc /> public void MoveOrderUp(ISimplyAPlugin plugin) { var plugins = LoadPluginSettings().OrderBy(x => x.Order).ToList(); var entry = plugins.SingleOrDefault(p => p.Name == GetPluginName(plugin)); if (entry == null) { return; } var index = plugins.IndexOf(entry); if (index <= 0) { return; } var otherEntry = plugins[index - 1]; var tmp = entry.Order; entry.Order = otherEntry.Order; otherEntry.Order = tmp; SavePluginSettings(plugins); }
/// <inheritdoc /> public void AddPlugin(ISimplyAPlugin plugin) { var plugins = LoadPluginSettings().ToList(); var entry = new PluginSettingEntry { Name = GetPluginName(plugin), IsActive = false, Order = plugin is ISimplyAWpfPlugin ? (plugins.Any() ? plugins.Max(x => x.Order) + 1 : 0) : -1 }; plugins.Add(entry); SavePluginSettings(plugins); }
/// <summary> /// OnInit /// </summary> public void OnInit(ISimplyAPlugin plugin) { OnInternalInit(plugin); foreach (var it in plugin.ConfigurationItems) { try { var defaultValue = plugin.GetConfigurationValue(it.Key); switch (it) { case BoolSettingValue boolIt: { var itVm = _resolverService.Resolve <BoolConfigurationItemViewModel>(); itVm.OnInit(boolIt, defaultValue); Items.Add(itVm); break; } case StringListSettingValue listIt: { var itVm = _resolverService.Resolve <StringListConfigurationItemViewModel>(); itVm.OnInit(listIt, defaultValue); Items.Add(itVm); break; } case StringSettingValue strIt: { var itVm = _resolverService.Resolve <StringConfigurationItemViewModel>(); itVm.OnInit(strIt, defaultValue); Items.Add(itVm); break; } case IntSettingValue intIt: { var itVm = _resolverService.Resolve <IntConfigurationItemViewModel>(); itVm.OnInit(intIt, defaultValue); Items.Add(itVm); break; } } } catch { // Do nothing } } }
/// <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); }
/// <inheritdoc /> public PluginSettingEntry GetPluginSetting(ISimplyAPlugin plugin) => LoadPluginSettings().SingleOrDefault(p => p.Name == GetPluginName(plugin));
/// <summary> /// GetPluginName /// </summary> public string GetPluginName(ISimplyAPlugin plugin) { return(plugin.GetType().Assembly.GetName().Name + ";" + plugin.GetType().FullName); }
/// <summary> /// OnInit /// </summary> public void OnInit(ISimplyAPlugin plugin) { OnInternalInit(plugin); }