PendingRestartNotifier.cs 1.0 KB

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