mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-14 19:04:51 +08:00
Monitor "~/Modules" path to detect add/remove of modules
--HG-- branch : dev
This commit is contained in:
@@ -15,6 +15,7 @@ namespace Orchard.Environment.Extensions {
|
|||||||
private readonly IDependenciesFolder _dependenciesFolder;
|
private readonly IDependenciesFolder _dependenciesFolder;
|
||||||
private readonly IExtensionManager _extensionManager;
|
private readonly IExtensionManager _extensionManager;
|
||||||
private readonly IVirtualPathProvider _virtualPathProvider;
|
private readonly IVirtualPathProvider _virtualPathProvider;
|
||||||
|
private readonly IVirtualPathMonitor _virtualPathMonitor;
|
||||||
private readonly IEnumerable<IExtensionLoader> _loaders;
|
private readonly IEnumerable<IExtensionLoader> _loaders;
|
||||||
private readonly IHostEnvironment _hostEnvironment;
|
private readonly IHostEnvironment _hostEnvironment;
|
||||||
private readonly IBuildManager _buildManager;
|
private readonly IBuildManager _buildManager;
|
||||||
@@ -23,6 +24,7 @@ namespace Orchard.Environment.Extensions {
|
|||||||
IDependenciesFolder dependenciesFolder,
|
IDependenciesFolder dependenciesFolder,
|
||||||
IExtensionManager extensionManager,
|
IExtensionManager extensionManager,
|
||||||
IVirtualPathProvider virtualPathProvider,
|
IVirtualPathProvider virtualPathProvider,
|
||||||
|
IVirtualPathMonitor virtualPathMonitor,
|
||||||
IEnumerable<IExtensionLoader> loaders,
|
IEnumerable<IExtensionLoader> loaders,
|
||||||
IHostEnvironment hostEnvironment,
|
IHostEnvironment hostEnvironment,
|
||||||
IBuildManager buildManager) {
|
IBuildManager buildManager) {
|
||||||
@@ -30,6 +32,7 @@ namespace Orchard.Environment.Extensions {
|
|||||||
_dependenciesFolder = dependenciesFolder;
|
_dependenciesFolder = dependenciesFolder;
|
||||||
_extensionManager = extensionManager;
|
_extensionManager = extensionManager;
|
||||||
_virtualPathProvider = virtualPathProvider;
|
_virtualPathProvider = virtualPathProvider;
|
||||||
|
_virtualPathMonitor = virtualPathMonitor;
|
||||||
_loaders = loaders.OrderBy(l => l.Order);
|
_loaders = loaders.OrderBy(l => l.Order);
|
||||||
_hostEnvironment = hostEnvironment;
|
_hostEnvironment = hostEnvironment;
|
||||||
_buildManager = buildManager;
|
_buildManager = buildManager;
|
||||||
@@ -287,6 +290,10 @@ namespace Orchard.Environment.Extensions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void MonitorExtensions(Action<IVolatileToken> monitor) {
|
public void MonitorExtensions(Action<IVolatileToken> monitor) {
|
||||||
|
// Monitor add/remove of any module
|
||||||
|
monitor(_virtualPathMonitor.WhenPathChanges("~/Modules"));
|
||||||
|
|
||||||
|
// Give loaders a chance to monitor any additional changes
|
||||||
var extensions = _extensionManager.AvailableExtensions().Where(d => d.ExtensionType == "Module").ToList();
|
var extensions = _extensionManager.AvailableExtensions().Where(d => d.ExtensionType == "Module").ToList();
|
||||||
foreach (var extension in extensions) {
|
foreach (var extension in extensions) {
|
||||||
foreach (var loader in _loaders) {
|
foreach (var loader in _loaders) {
|
||||||
|
Reference in New Issue
Block a user