diff --git a/Emby.Server.Implementations/EntryPoints/ServerEventNotifier.cs b/Emby.Server.Implementations/EntryPoints/ServerEventNotifier.cs
index 833c061066..3d58b91e1d 100644
--- a/Emby.Server.Implementations/EntryPoints/ServerEventNotifier.cs
+++ b/Emby.Server.Implementations/EntryPoints/ServerEventNotifier.cs
@@ -3,7 +3,6 @@ using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.Plugins;
using MediaBrowser.Common.Updates;
-using MediaBrowser.Controller;
using MediaBrowser.Controller.Plugins;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Updates;
@@ -20,34 +19,24 @@ namespace Emby.Server.Implementations.EntryPoints
///
private readonly IInstallationManager _installationManager;
- ///
- /// The kernel.
- ///
- private readonly IServerApplicationHost _appHost;
-
private readonly ISessionManager _sessionManager;
///
/// Initializes a new instance of the class.
///
- /// The application host.
/// The installation manager.
/// The session manager.
public ServerEventNotifier(
- IServerApplicationHost appHost,
IInstallationManager installationManager,
ISessionManager sessionManager)
{
_installationManager = installationManager;
- _appHost = appHost;
_sessionManager = sessionManager;
}
///
public Task RunAsync()
{
- _appHost.HasPendingRestartChanged += OnHasPendingRestartChanged;
-
_installationManager.PluginUninstalled += OnPluginUninstalled;
_installationManager.PackageInstalling += OnPackageInstalling;
_installationManager.PackageInstallationCancelled += OnPackageInstallationCancelled;
@@ -87,16 +76,6 @@ namespace Emby.Server.Implementations.EntryPoints
await SendMessageToAdminSessions("PluginUninstalled", e).ConfigureAwait(false);
}
- ///
- /// Handles the HasPendingRestartChanged event of the kernel control.
- ///
- /// The source of the event.
- /// The instance containing the event data.
- private async void OnHasPendingRestartChanged(object sender, EventArgs e)
- {
- await _sessionManager.SendRestartRequiredNotification(CancellationToken.None).ConfigureAwait(false);
- }
-
private async Task SendMessageToAdminSessions(string name, T data)
{
try
@@ -128,8 +107,6 @@ namespace Emby.Server.Implementations.EntryPoints
_installationManager.PackageInstallationCancelled -= OnPackageInstallationCancelled;
_installationManager.PackageInstallationCompleted -= OnPackageInstallationCompleted;
_installationManager.PackageInstallationFailed -= OnPackageInstallationFailed;
-
- _appHost.HasPendingRestartChanged -= OnHasPendingRestartChanged;
}
}
}
diff --git a/Jellyfin.Data/Events/System/PendingRestartEventArgs.cs b/Jellyfin.Data/Events/System/PendingRestartEventArgs.cs
new file mode 100644
index 0000000000..17a4549699
--- /dev/null
+++ b/Jellyfin.Data/Events/System/PendingRestartEventArgs.cs
@@ -0,0 +1,11 @@
+using System;
+
+namespace Jellyfin.Data.Events.System
+{
+ ///
+ /// An event that fires when there is a pending restart.
+ ///
+ public class PendingRestartEventArgs : EventArgs
+ {
+ }
+}
diff --git a/Jellyfin.Server.Implementations/Events/Consumers/System/PendingRestartNotifier.cs b/Jellyfin.Server.Implementations/Events/Consumers/System/PendingRestartNotifier.cs
new file mode 100644
index 0000000000..2fa38dd71a
--- /dev/null
+++ b/Jellyfin.Server.Implementations/Events/Consumers/System/PendingRestartNotifier.cs
@@ -0,0 +1,31 @@
+using System.Threading;
+using System.Threading.Tasks;
+using Jellyfin.Data.Events.System;
+using MediaBrowser.Controller.Events;
+using MediaBrowser.Controller.Session;
+
+namespace Jellyfin.Server.Implementations.Events.Consumers.System
+{
+ ///
+ /// Notifies users when there is a pending restart.
+ ///
+ public class PendingRestartNotifier : IEventConsumer
+ {
+ private readonly ISessionManager _sessionManager;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The session manager.
+ public PendingRestartNotifier(ISessionManager sessionManager)
+ {
+ _sessionManager = sessionManager;
+ }
+
+ ///
+ public async Task OnEvent(PendingRestartEventArgs eventArgs)
+ {
+ await _sessionManager.SendRestartRequiredNotification(CancellationToken.None).ConfigureAwait(false);
+ }
+ }
+}