From 933fca78e65c146b3cf16eefce6410b21e18cdbe Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 12 Apr 2015 14:58:21 -0400 Subject: support sync for live tv recordings --- .../Dto/DtoService.cs | 39 ++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Dto') diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs index 612c33d872..6a7323fdee 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>(result1.Items, result2.Items); } - private void FillSyncInfo(BaseItemDto dto, BaseItem item, DtoOptions options, User user) + public void FillSyncInfo(IEnumerable 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 itemIdsWithPendingSyncJobs, IEnumerable syncedItemIds, DtoOptions options, User user) + private void FillSyncInfo(IHasSyncInfo dto, BaseItem item, IEnumerable itemIdsWithPendingSyncJobs, IEnumerable 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; + } } } -- cgit v1.2.3