PluginInstallationFailedNotifier.cs 1.2 KB

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