TaskCompletedNotifier.cs 1.1 KB

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