@ -6,7 +6,7 @@ using MediaBrowser.Model.Events;
using MediaBrowser.Model.Tasks ;
using Microsoft.Extensions.Logging ;
namespace MediaBrowser.Api.ScheduledTask s
namespace Jellyfin.Api.WebSocketListener s
{
/// <summary>
/// Class ScheduledTasksWebSocketListener.
@ -17,42 +17,27 @@ namespace MediaBrowser.Api.ScheduledTasks
/// Gets or sets the task manager.
/// </summary>
/// <value>The task manager.</value>
private ITaskManager TaskManager { get ; set ; }
private readonly ITaskManager _taskManager ;
/// <summary>
/// Gets the name.
/// </summary>
/// <value>The name.</value>
protected override string Name = > "ScheduledTasksInfo" ;
/// <summary>
/// Initializes a new instance of the <see cref="ScheduledTasksWebSocketListener" /> class.
/// Initializes a new instance of the <see cref="ScheduledTasksWebSocketListener"/> class.
/// </summary>
/// <param name="logger">Instance of the <see cref="ILogger{ScheduledTasksWebSocketListener}"/> interface.</param>
/// <param name="taskManager">Instance of the <see cref="ITaskManager"/> interface.</param>
public ScheduledTasksWebSocketListener ( ILogger < ScheduledTasksWebSocketListener > logger , ITaskManager taskManager )
: base ( logger )
{
T askManager = taskManager ;
_t askManager = taskManager ;
TaskManager. TaskExecuting + = TaskManager_ TaskExecuting;
TaskManager. TaskCompleted + = TaskManager_ TaskCompleted;
_taskManager. TaskExecuting + = On TaskExecuting;
_taskManager. TaskCompleted + = On TaskCompleted;
}
void TaskManager_TaskCompleted ( object sender , TaskCompletionEventArgs e )
{
SendData ( true ) ;
e . Task . TaskProgress - = Argument_TaskProgress ;
}
void TaskManager_TaskExecuting ( object sender , GenericEventArgs < IScheduledTaskWorker > e )
{
SendData ( true ) ;
e . Argument . TaskProgress + = Argument_TaskProgress ;
}
void Argument_TaskProgress ( object sender , GenericEventArgs < double > e )
{
SendData ( false ) ;
}
/// <summary>
/// Gets the name.
/// </summary>
/// <value>The name.</value>
protected override string Name = > "ScheduledTasksInfo" ;
/// <summary>
/// Gets the data to send.
@ -60,18 +45,36 @@ namespace MediaBrowser.Api.ScheduledTasks
/// <returns>Task{IEnumerable{TaskInfo}}.</returns>
protected override Task < IEnumerable < TaskInfo > > GetDataToSend ( )
{
return Task . FromResult ( T askManager. ScheduledTasks
return Task . FromResult ( _t askManager. ScheduledTasks
. OrderBy ( i = > i . Name )
. Select ( ScheduledTaskHelpers . GetTaskInfo )
. Where ( i = > ! i . IsHidden ) ) ;
}
/// <inheritdoc />
protected override void Dispose ( bool dispose )
{
TaskManager. TaskExecuting - = TaskManager_ TaskExecuting;
TaskManager. TaskCompleted - = TaskManager_ TaskCompleted;
_taskManager. TaskExecuting - = On TaskExecuting;
_taskManager. TaskCompleted - = On TaskCompleted;
base . Dispose ( dispose ) ;
}
private void OnTaskCompleted ( object sender , TaskCompletionEventArgs e )
{
SendData ( true ) ;
e . Task . TaskProgress - = OnTaskProgress ;
}
private void OnTaskExecuting ( object sender , GenericEventArgs < IScheduledTaskWorker > e )
{
SendData ( true ) ;
e . Argument . TaskProgress + = OnTaskProgress ;
}
private void OnTaskProgress ( object sender , GenericEventArgs < double > e )
{
SendData ( false ) ;
}
}
}