aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations')
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs6
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncManager.cs26
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);