public Plugin InstallPlugin(PluginInstallInput pluginInstallInput, bool?overrideEnabled) { PluginContainer pluginContainer = null; if (!string.IsNullOrEmpty(pluginInstallInput.VirtualPath)) { pluginContainer = pluginEngine.GetPlugins(p => (p.Tag == null || !(p.Tag is Plugin)) && p.CompilationAssembly != null && string.Compare(p.VirtualPath, pluginInstallInput.VirtualPath, true) == 0).FirstOrDefault(); } if (pluginContainer == null) { throw new InvalidOperationException("Could not find plugin to install"); } ValidationStateDictionary validationState = ValidatePlugin(pluginContainer); Plugin plugin = repository.Save(new Plugin(context.Site.ID, pluginInstallInput.VirtualPath, validationState.IsValid && overrideEnabled.HasValue ? overrideEnabled.Value : validationState.IsValid, pluginContainer.GetPropertiesUsingDefaultValues())); plugin.Container = pluginContainer; pluginContainer.Tag = plugin; pluginContainer.IsValid = validationState.IsValid; pluginTemplateRegistry.Reload(pluginEngine); context.Routes.Reload(modules, this, pluginEngine); pluginStyleRegistry.Reload(pluginEngine); pluginScriptRegistry.Reload(pluginEngine); return(plugin); }
public static PluginContainer GetPlugin(this IPluginEngine pluginEngine, Plugin plugin) { PluginContainer pluginContainer = null; if (plugin.ID != Guid.Empty || !string.IsNullOrEmpty(plugin.VirtualPath)) { pluginContainer = pluginEngine.GetPlugins(p => (p.Tag != null && p.Tag is Plugin && ((Plugin)p.Tag).ID == plugin.ID) || string.Compare(p.VirtualPath, plugin.VirtualPath, true) == 0).FirstOrDefault(); } return(pluginContainer); }
public static IEnumerable <PluginContainer> GetInstalledAndEnabledPlugins(this IPluginEngine pluginEngine) { return(pluginEngine.GetPlugins(getInstalledAndEnabled(pluginEngine))); }
public OxiteViewModelItems <PluginContainer> List(bool?installed) { return(new OxiteViewModelItems <PluginContainer>(installed != null ? pluginEngine.GetPlugins(p => (bool)installed ? p.Tag is Plugin : p.Tag == null || !(p.Tag is Plugin)).FillContainer(pluginEngine) : pluginEngine.GetPlugins().FillContainer(pluginEngine))); }