From 88f1723f99b400730fee6e205cd7a8ecceed1052 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 30 Jul 2013 10:51:28 -0400 Subject: support parent item images for unattached items --- MediaBrowser.Controller/Dto/DtoBuilder.cs | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/Dto/DtoBuilder.cs b/MediaBrowser.Controller/Dto/DtoBuilder.cs index f9ad23f4f..c482ae9e0 100644 --- a/MediaBrowser.Controller/Dto/DtoBuilder.cs +++ b/MediaBrowser.Controller/Dto/DtoBuilder.cs @@ -47,9 +47,10 @@ namespace MediaBrowser.Controller.Dto /// The item. /// The fields. /// The user. + /// The owner. /// Task{DtoBaseItem}. /// item - public async Task GetBaseItemDto(BaseItem item, List fields, User user = null) + public async Task GetBaseItemDto(BaseItem item, List fields, User user = null, BaseItem owner = null) { if (item == null) { @@ -93,7 +94,7 @@ namespace MediaBrowser.Controller.Dto AttachUserSpecificInfo(dto, item, user, fields); } - AttachBasicFields(dto, item, fields); + AttachBasicFields(dto, item, owner, fields); if (fields.Contains(ItemFields.SoundtrackIds)) { @@ -378,8 +379,9 @@ namespace MediaBrowser.Controller.Dto /// /// The dto. /// The item. + /// The owner. /// The fields. - private void AttachBasicFields(BaseItemDto dto, BaseItem item, List fields) + private void AttachBasicFields(BaseItemDto dto, BaseItem item, BaseItem owner, List fields) { if (fields.Contains(ItemFields.DateCreated)) { @@ -495,7 +497,7 @@ namespace MediaBrowser.Controller.Dto // If there are no backdrops, indicate what parent has them in case the Ui wants to allow inheritance if (dto.BackdropImageTags.Count == 0) { - var parentWithBackdrop = GetParentBackdropItem(item); + var parentWithBackdrop = GetParentBackdropItem(item, owner); if (parentWithBackdrop != null) { @@ -514,7 +516,7 @@ namespace MediaBrowser.Controller.Dto // If there is no logo, indicate what parent has one in case the Ui wants to allow inheritance if (!dto.HasLogo) { - var parentWithLogo = GetParentImageItem(item, ImageType.Logo); + var parentWithLogo = GetParentImageItem(item, ImageType.Logo, owner); if (parentWithLogo != null) { @@ -527,7 +529,7 @@ namespace MediaBrowser.Controller.Dto // If there is no art, indicate what parent has one in case the Ui wants to allow inheritance if (!dto.HasArtImage) { - var parentWithImage = GetParentImageItem(item, ImageType.Art); + var parentWithImage = GetParentImageItem(item, ImageType.Art, owner); if (parentWithImage != null) { @@ -936,10 +938,11 @@ namespace MediaBrowser.Controller.Dto /// If an item does not any backdrops, this can be used to find the first parent that does have one /// /// The item. + /// The owner. /// BaseItem. - private BaseItem GetParentBackdropItem(BaseItem item) + private BaseItem GetParentBackdropItem(BaseItem item, BaseItem owner) { - var parent = item.Parent; + var parent = item.Parent ?? owner; while (parent != null) { @@ -959,10 +962,11 @@ namespace MediaBrowser.Controller.Dto /// /// The item. /// The type. + /// The owner. /// BaseItem. - private BaseItem GetParentImageItem(BaseItem item, ImageType type) + private BaseItem GetParentImageItem(BaseItem item, ImageType type, BaseItem owner) { - var parent = item.Parent; + var parent = item.Parent ?? owner; while (parent != null) { -- cgit v1.2.3