aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Model/Querying/ItemFields.cs1
-rw-r--r--MediaBrowser.Server.Implementations/Dto/DtoService.cs46
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs1
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncManager.cs1
4 files changed, 16 insertions, 33 deletions
diff --git a/MediaBrowser.Model/Querying/ItemFields.cs b/MediaBrowser.Model/Querying/ItemFields.cs
index 21f87247a..0400e374a 100644
--- a/MediaBrowser.Model/Querying/ItemFields.cs
+++ b/MediaBrowser.Model/Querying/ItemFields.cs
@@ -219,6 +219,7 @@
/// </summary>
Studios,
+ BasicSyncInfo,
/// <summary>
/// The synchronize information
/// </summary>
diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
index f17f5e5a2..90111ad8e 100644
--- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs
+++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
@@ -133,7 +133,7 @@ namespace MediaBrowser.Server.Implementations.Dto
}
}
- FillSyncInfo(dto, item, syncJobItems, options, user);
+ FillSyncInfo(dto, item, options, user, syncJobItems);
list.Add(dto);
}
@@ -253,39 +253,16 @@ namespace MediaBrowser.Server.Implementations.Dto
{
var item = tuple.Item1;
- FillSyncInfo(tuple.Item2, item, syncProgress, options, user);
+ FillSyncInfo(tuple.Item2, item, options, user, syncProgress);
}
}
}
private void FillSyncInfo(IHasSyncInfo dto, BaseItem item, DtoOptions options, User user, SyncedItemProgress[] syncProgress)
{
- if (options.Fields.Contains(ItemFields.SyncInfo))
- {
- var userCanSync = user != null && user.Policy.EnableSync;
- dto.SupportsSync = userCanSync && _syncManager.SupportsSync(item);
- }
-
- if (dto.SupportsSync ?? false)
- {
- dto.HasSyncJob = syncProgress.Any(i => i.Status != SyncJobItemStatus.Synced && string.Equals(i.ItemId, dto.Id, StringComparison.OrdinalIgnoreCase));
- dto.IsSynced = syncProgress.Any(i => i.Status == SyncJobItemStatus.Synced && string.Equals(i.ItemId, dto.Id, StringComparison.OrdinalIgnoreCase));
-
- if (dto.IsSynced.Value)
- {
- dto.SyncStatus = SyncJobItemStatus.Synced;
- }
+ var hasFullSyncInfo = options.Fields.Contains(ItemFields.SyncInfo);
- else if (dto.HasSyncJob.Value)
- {
- dto.SyncStatus = syncProgress.Where(i => string.Equals(i.ItemId, dto.Id, StringComparison.OrdinalIgnoreCase)).Select(i => i.Status).Max();
- }
- }
- }
-
- private void FillSyncInfo(IHasSyncInfo dto, BaseItem item, SyncedItemProgress[] syncProgress, DtoOptions options, User user)
- {
- if (options.Fields.Contains(ItemFields.SyncInfo))
+ if (hasFullSyncInfo || options.Fields.Contains(ItemFields.BasicSyncInfo))
{
var userCanSync = user != null && user.Policy.EnableSync;
dto.SupportsSync = userCanSync && _syncManager.SupportsSync(item);
@@ -296,14 +273,17 @@ namespace MediaBrowser.Server.Implementations.Dto
dto.HasSyncJob = syncProgress.Any(i => i.Status != SyncJobItemStatus.Synced && string.Equals(i.ItemId, dto.Id, StringComparison.OrdinalIgnoreCase));
dto.IsSynced = syncProgress.Any(i => i.Status == SyncJobItemStatus.Synced && string.Equals(i.ItemId, dto.Id, StringComparison.OrdinalIgnoreCase));
- if (dto.IsSynced.Value)
+ if (hasFullSyncInfo)
{
- dto.SyncStatus = SyncJobItemStatus.Synced;
- }
+ if (dto.IsSynced.Value)
+ {
+ dto.SyncStatus = SyncJobItemStatus.Synced;
+ }
- else if (dto.HasSyncJob.Value)
- {
- dto.SyncStatus = syncProgress.Where(i => string.Equals(i.ItemId, dto.Id, StringComparison.OrdinalIgnoreCase)).Select(i => i.Status).Max();
+ else if (dto.HasSyncJob.Value)
+ {
+ dto.SyncStatus = syncProgress.Where(i => string.Equals(i.ItemId, dto.Id, StringComparison.OrdinalIgnoreCase)).Select(i => i.Status).Max();
+ }
}
}
}
diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
index 64af35a9a..26ec599fa 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
+++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
@@ -1187,6 +1187,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
// Load these now which will prefetch metadata
var dtoOptions = new DtoOptions();
dtoOptions.Fields.Remove(ItemFields.SyncInfo);
+ dtoOptions.Fields.Remove(ItemFields.BasicSyncInfo);
await GetRecordings(new RecordingQuery(), dtoOptions, cancellationToken).ConfigureAwait(false);
progress.Report(100);
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
index 92221ffba..15855f553 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
@@ -646,6 +646,7 @@ namespace MediaBrowser.Server.Implementations.Sync
dtoOptions.Fields.Remove(ItemFields.SeriesGenres);
dtoOptions.Fields.Remove(ItemFields.Settings);
dtoOptions.Fields.Remove(ItemFields.SyncInfo);
+ dtoOptions.Fields.Remove(ItemFields.BasicSyncInfo);
syncedItem.Item = _dtoService().GetBaseItemDto(libraryItem, dtoOptions);