diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Sync/SyncManager.cs | 26 |
2 files changed, 28 insertions, 4 deletions
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs b/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs index 6ef74d953..c373faf1e 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs +++ b/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs @@ -144,7 +144,7 @@ namespace MediaBrowser.Server.Implementations.Sync return UpdateJobStatus(job, result.Items.ToList()); } - private Task UpdateJobStatus(SyncJob job, List<SyncJobItem> jobItems) + private async Task UpdateJobStatus(SyncJob job, List<SyncJobItem> jobItems) { job.ItemCount = jobItems.Count; @@ -204,7 +204,9 @@ namespace MediaBrowser.Server.Implementations.Sync job.Status = SyncJobStatus.Transferring; } - return _syncRepo.Update(job); + await _syncRepo.Update(job).ConfigureAwait(false); + + ((SyncManager)_syncManager).OnSyncJobUpdated(job); } public async Task<IEnumerable<BaseItem>> GetItemsForSync(SyncCategory? category, string parentId, IEnumerable<string> itemIds, User user, bool unwatchedOnly) diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs index 627e94eb1..6eef268b9 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs +++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs @@ -174,7 +174,7 @@ namespace MediaBrowser.Server.Implementations.Sync return returnResult; } - public Task UpdateJob(SyncJob job) + public async Task UpdateJob(SyncJob job) { // Get fresh from the db and only update the fields that are supported to be changed. var instance = _repo.GetJob(job.Id); @@ -185,7 +185,21 @@ namespace MediaBrowser.Server.Implementations.Sync instance.SyncNewContent = job.SyncNewContent; instance.ItemLimit = job.ItemLimit; - return _repo.Update(instance); + await _repo.Update(instance).ConfigureAwait(false); + + OnSyncJobUpdated(instance); + } + + internal void OnSyncJobUpdated(SyncJob job) + { + if (SyncJobUpdated != null) + { + EventHelper.FireEventIfNotNull(SyncJobUpdated, this, new GenericEventArgs<SyncJob> + { + Argument = job + + }, _logger); + } } public async Task<QueryResult<SyncJob>> GetJobs(SyncJobQuery query) @@ -202,6 +216,14 @@ namespace MediaBrowser.Server.Implementations.Sync private async Task FillMetadata(SyncJob job) { + var target = GetSyncTargets(job.UserId) + .FirstOrDefault(i => string.Equals(i.Id, job.TargetId, StringComparison.OrdinalIgnoreCase)); + + if (target != null) + { + job.TargetName = target.Name; + } + var item = job.RequestedItemIds .Select(_libraryManager.GetItemById) .FirstOrDefault(i => i != null); |
