public IActionResult Delete(Guid id) { var module = _pluginManager.GetPlugin(id); _pluginManager.DisablePlugin(id); _pluginManager.DeletePlugin(id); var moduleName = module.Name; var matchedItem = _partManager.ApplicationParts.FirstOrDefault(p => p.Name == moduleName); if (matchedItem != null) { _partManager.ApplicationParts.Remove(matchedItem); matchedItem = null; } MyActionDescriptorChangeProvider.Instance.HasChanged = true; MyActionDescriptorChangeProvider.Instance.TokenSource.Cancel(); PluginsLoadContexts.RemovePluginContext(module.Name); var directory = new DirectoryInfo($"{AppDomain.CurrentDomain.BaseDirectory}Modules/{module.Name}"); directory.Delete(true); return(RedirectToAction("Index")); }
private void DeleteCommandExecute(PluginInfo file) { var confirmed = _uiServices.Confirm( "Confirm deleting " + file, Resources.ConfirmToDeletePlugin, isWarning: true); if (!confirmed) { return; } var succeeded = _pluginManager.DeletePlugin(file); if (succeeded) { Plugins.Remove(file); } }
public IActionResult Delete(Guid id) { var module = _pluginManager.GetPlugin(id); _pluginManager.DisablePlugin(id); _pluginManager.DeletePlugin(id); PluginsLoadContexts.RemovePluginContext(module.Name); GC.Collect(); GC.WaitForPendingFinalizers(); var directory = new DirectoryInfo($"{AppDomain.CurrentDomain.BaseDirectory}Modules/{module.Name}"); directory.Delete(true); MyActionDescriptorChangeProvider.Instance.HasChanged = true; MyActionDescriptorChangeProvider.Instance.TokenSource.Cancel(); return(RedirectToAction("Index")); }
public IActionResult Delete(Guid id) { _pluginManager.DeletePlugin(id); return(RedirectToAction("Index")); }