diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Dto/DtoService.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Dto/DtoService.cs | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs index 612c33d87..6a7323fde 100644 --- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs +++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs @@ -188,7 +188,22 @@ namespace MediaBrowser.Server.Implementations.Dto return new Tuple<IEnumerable<string>, IEnumerable<string>>(result1.Items, result2.Items); } - private void FillSyncInfo(BaseItemDto dto, BaseItem item, DtoOptions options, User user) + public void FillSyncInfo(IEnumerable<IHasSyncInfo> dtos, DtoOptions options, User user) + { + if (options.Fields.Contains(ItemFields.SyncInfo)) + { + var tuple = GetItemIdsWithSyncJobs(options); + + foreach (var dto in dtos) + { + var item = _libraryManager.GetItemById(dto.Id); + + FillSyncInfo(dto, item, tuple.Item1, tuple.Item2, options, user); + } + } + } + + private void FillSyncInfo(IHasSyncInfo dto, BaseItem item, DtoOptions options, User user) { if (options.Fields.Contains(ItemFields.SyncInfo)) { @@ -202,10 +217,20 @@ namespace MediaBrowser.Server.Implementations.Dto dto.HasSyncJob = tuple.Item1.Contains(dto.Id, StringComparer.OrdinalIgnoreCase); dto.IsSynced = tuple.Item2.Contains(dto.Id, StringComparer.OrdinalIgnoreCase); + + if (dto.IsSynced.Value) + { + dto.SyncStatus = SyncJobItemStatus.Synced; + } + + else if (dto.HasSyncJob.Value) + { + dto.SyncStatus = SyncJobItemStatus.Queued; + } } } - private void FillSyncInfo(BaseItemDto dto, BaseItem item, IEnumerable<string> itemIdsWithPendingSyncJobs, IEnumerable<string> syncedItemIds, DtoOptions options, User user) + private void FillSyncInfo(IHasSyncInfo dto, BaseItem item, IEnumerable<string> itemIdsWithPendingSyncJobs, IEnumerable<string> syncedItemIds, DtoOptions options, User user) { if (options.Fields.Contains(ItemFields.SyncInfo)) { @@ -217,6 +242,16 @@ namespace MediaBrowser.Server.Implementations.Dto { dto.HasSyncJob = itemIdsWithPendingSyncJobs.Contains(dto.Id, StringComparer.OrdinalIgnoreCase); dto.IsSynced = syncedItemIds.Contains(dto.Id, StringComparer.OrdinalIgnoreCase); + + if (dto.IsSynced.Value) + { + dto.SyncStatus = SyncJobItemStatus.Synced; + } + + else if (dto.HasSyncJob.Value) + { + dto.SyncStatus = SyncJobItemStatus.Queued; + } } } |
