Ejemplo n.º 1
0
        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"));
        }
Ejemplo n.º 2
0
        public void DeleteModule(string moduleName)
        {
            PluginsLoadContexts.RemovePluginContext(moduleName);

            var directory = new DirectoryInfo($"{AppDomain.CurrentDomain.BaseDirectory}Modules\\{moduleName}");

            directory.Delete(true);
        }
Ejemplo n.º 3
0
        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"));
        }