Example #1
0
        /// <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);
        }
Example #2
0
        /// <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
                }
            }
        }
Example #4
0
        /// <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);
        }
Example #5
0
 /// <inheritdoc />
 public PluginSettingEntry GetPluginSetting(ISimplyAPlugin plugin) => LoadPluginSettings().SingleOrDefault(p => p.Name == GetPluginName(plugin));
Example #6
0
 /// <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);
 }