TaskCompletedNotifier.cs 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. using System.Threading;
  2. using System.Threading.Tasks;
  3. using MediaBrowser.Controller.Events;
  4. using MediaBrowser.Controller.Session;
  5. using MediaBrowser.Model.Tasks;
  6. namespace Jellyfin.Server.Implementations.Events.Consumers.System
  7. {
  8. /// <summary>
  9. /// Notifies admin users when a task is completed.
  10. /// </summary>
  11. public class TaskCompletedNotifier : IEventConsumer<TaskCompletionEventArgs>
  12. {
  13. private readonly ISessionManager _sessionManager;
  14. /// <summary>
  15. /// Initializes a new instance of the <see cref="TaskCompletedNotifier"/> class.
  16. /// </summary>
  17. /// <param name="sessionManager">The session manager.</param>
  18. public TaskCompletedNotifier(ISessionManager sessionManager)
  19. {
  20. _sessionManager = sessionManager;
  21. }
  22. /// <inheritdoc />
  23. public async Task OnEvent(TaskCompletionEventArgs eventArgs)
  24. {
  25. await _sessionManager.SendMessageToAdminSessions("ScheduledTaskEnded", eventArgs.Result, CancellationToken.None).ConfigureAwait(false);
  26. }
  27. }
  28. }