aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Sync/SyncNotificationEntryPoint.cs
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2016-08-20 13:16:21 -0400
committerGitHub <noreply@github.com>2016-08-20 13:16:21 -0400
commitd04f45ec202e92f6c8226f2630d9a271840ef91b (patch)
treeb54beda6a1b4f12e0fad161dae551a40826711c0 /MediaBrowser.Server.Implementations/Sync/SyncNotificationEntryPoint.cs
parent003f61c8914706c6ea1d211644dabf5a5fbd759e (diff)
parenta813083c9716e42913dabaf1fa88c0bac4caa27f (diff)
Merge pull request #2082 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync/SyncNotificationEntryPoint.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncNotificationEntryPoint.cs48
1 files changed, 48 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncNotificationEntryPoint.cs b/MediaBrowser.Server.Implementations/Sync/SyncNotificationEntryPoint.cs
new file mode 100644
index 000000000..7017b422e
--- /dev/null
+++ b/MediaBrowser.Server.Implementations/Sync/SyncNotificationEntryPoint.cs
@@ -0,0 +1,48 @@
+using System.Threading;
+using MediaBrowser.Controller.Plugins;
+using MediaBrowser.Controller.Session;
+using MediaBrowser.Controller.Sync;
+using MediaBrowser.Model.Events;
+using MediaBrowser.Model.Sync;
+
+namespace MediaBrowser.Server.Implementations.Sync
+{
+ public class SyncNotificationEntryPoint : IServerEntryPoint
+ {
+ private readonly ISessionManager _sessionManager;
+ private readonly ISyncManager _syncManager;
+
+ public SyncNotificationEntryPoint(ISyncManager syncManager, ISessionManager sessionManager)
+ {
+ _syncManager = syncManager;
+ _sessionManager = sessionManager;
+ }
+
+ public void Run()
+ {
+ _syncManager.SyncJobItemUpdated += _syncManager_SyncJobItemUpdated;
+ }
+
+ private async void _syncManager_SyncJobItemUpdated(object sender, GenericEventArgs<SyncJobItem> e)
+ {
+ var item = e.Argument;
+
+ if (item.Status == SyncJobItemStatus.ReadyToTransfer)
+ {
+ try
+ {
+ await _sessionManager.SendMessageToUserDeviceSessions(item.TargetId, "SyncJobItemReady", item, CancellationToken.None).ConfigureAwait(false);
+ }
+ catch
+ {
+
+ }
+ }
+ }
+
+ public void Dispose()
+ {
+ _syncManager.SyncJobItemUpdated -= _syncManager_SyncJobItemUpdated;
+ }
+ }
+}