aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Dto
diff options
context:
space:
mode:
authorMichalis Adamidis <gsnerf@gsnerf.de>2014-08-06 01:29:56 +0200
committerMichalis Adamidis <gsnerf@gsnerf.de>2014-08-06 01:29:56 +0200
commit7994f0dcd9082cc657e07dbff6ecc4e638f1f527 (patch)
treea62175934f5c563c2fcb37ecccd8b014189a35c9 /MediaBrowser.Server.Implementations/Dto
parenta118169a3ccf3361a5920794c7762dfcff1babd2 (diff)
parent7e25c857a551ce06025b3b85996aef7ed3c6571e (diff)
Merge remote-tracking branch 'official/master'
Diffstat (limited to 'MediaBrowser.Server.Implementations/Dto')
-rw-r--r--MediaBrowser.Server.Implementations/Dto/DtoService.cs47
1 files changed, 46 insertions, 1 deletions
diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
index afcfde556b..e3a386841b 100644
--- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs
+++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
@@ -11,6 +11,7 @@ using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Controller.Persistence;
+using MediaBrowser.Controller.Playlists;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Controller.Sync;
using MediaBrowser.Model.Drawing;
@@ -179,6 +180,11 @@ namespace MediaBrowser.Server.Implementations.Dto
}
}
+ if (item is Playlist)
+ {
+ AttachLinkedChildImages(dto, (Folder)item, user);
+ }
+
return dto;
}
@@ -819,7 +825,7 @@ namespace MediaBrowser.Server.Implementations.Dto
dto.DisplayOrder = hasDisplayOrder.DisplayOrder;
}
- var collectionFolder = item as CollectionFolder;
+ var collectionFolder = item as ICollectionFolder;
if (collectionFolder != null)
{
dto.CollectionType = collectionFolder.CollectionType;
@@ -1211,6 +1217,45 @@ namespace MediaBrowser.Server.Implementations.Dto
}
}
+ private void AttachLinkedChildImages(BaseItemDto dto, Folder folder, User user)
+ {
+ List<BaseItem> linkedChildren = null;
+
+ if (dto.BackdropImageTags.Count == 0)
+ {
+ if (linkedChildren == null)
+ {
+ linkedChildren = user == null
+ ? folder.GetRecursiveChildren().ToList()
+ : folder.GetRecursiveChildren(user, true).ToList();
+ }
+ var parentWithBackdrop = linkedChildren.FirstOrDefault(i => i.GetImages(ImageType.Backdrop).Any());
+
+ if (parentWithBackdrop != null)
+ {
+ dto.ParentBackdropItemId = GetDtoId(parentWithBackdrop);
+ dto.ParentBackdropImageTags = GetBackdropImageTags(parentWithBackdrop);
+ }
+ }
+
+ if (!dto.ImageTags.ContainsKey(ImageType.Primary))
+ {
+ if (linkedChildren == null)
+ {
+ linkedChildren = user == null
+ ? folder.GetRecursiveChildren().ToList()
+ : folder.GetRecursiveChildren(user, true).ToList();
+ }
+ var parentWithImage = linkedChildren.FirstOrDefault(i => i.GetImages(ImageType.Primary).Any());
+
+ if (parentWithImage != null)
+ {
+ dto.ParentPrimaryImageItemId = GetDtoId(parentWithImage);
+ dto.ParentPrimaryImageTag = GetImageCacheTag(parentWithImage, ImageType.Primary);
+ }
+ }
+ }
+
private string GetMappedPath(IHasMetadata item)
{
var path = item.Path;