@ -1,14 +1,11 @@
using MediaBrowser.Controller.FileOrganization ;
using MediaBrowser.Common.ScheduledTasks ;
using MediaBrowser.Controller.FileOrganization ;
using MediaBrowser.Controller.Plugins ;
using MediaBrowser.Model.Logging ;
using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Text ;
using System.Threading.Tasks ;
using MediaBrowser.Controller.Session ;
using MediaBrowser.Model.Events ;
using MediaBrowser.Model.FileOrganization ;
using MediaBrowser.Controller.Session ;
using MediaBrowser.Model.Logging ;
using System ;
using System.Threading ;
namespace MediaBrowser.Server.Implementations.FileOrganization
@ -20,11 +17,13 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
{
private readonly IFileOrganizationService _organizationService ;
private readonly ISessionManager _sessionManager ;
private readonly ITaskManager _taskManager ;
public FileOrganizationNotifier ( ILogger logger , IFileOrganizationService organizationService , ISessionManager sessionManager )
public FileOrganizationNotifier ( ILogger logger , IFileOrganizationService organizationService , ISessionManager sessionManager , ITaskManager taskManager )
{
_organizationService = organizationService ;
_sessionManager = sessionManager ;
_taskManager = taskManager ;
}
public void Run ( )
@ -33,6 +32,8 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
_organizationService . ItemRemoved + = _organizationService_ItemRemoved ;
_organizationService . ItemUpdated + = _organizationService_ItemUpdated ;
_organizationService . LogReset + = _organizationService_LogReset ;
_taskManager . TaskCompleted + = _taskManager_TaskCompleted ;
}
private void _organizationService_LogReset ( object sender , EventArgs e )
@ -55,12 +56,23 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
_sessionManager . SendMessageToAdminSessions ( "AutoOrganizeUpdate" , ( FileOrganizationResult ) null , CancellationToken . None ) ;
}
private void _taskManager_TaskCompleted ( object sender , TaskCompletionEventArgs e )
{
var taskWithKey = e . Task . ScheduledTask as IHasKey ;
if ( taskWithKey ! = null & & taskWithKey . Key = = "AutoOrganize" )
{
_sessionManager . SendMessageToAdminSessions ( "AutoOrganizeUpdate" , ( FileOrganizationResult ) null , CancellationToken . None ) ;
}
}
public void Dispose ( )
{
_organizationService . ItemAdded - = _organizationService_ItemAdded ;
_organizationService . ItemRemoved - = _organizationService_ItemRemoved ;
_organizationService . ItemUpdated - = _organizationService_ItemUpdated ;
_organizationService . LogReset - = _organizationService_LogReset ;
_taskManager . TaskCompleted - = _taskManager_TaskCompleted ;
}