aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Dto/DtoService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Dto/DtoService.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Dto/DtoService.cs25
1 files changed, 19 insertions, 6 deletions
diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
index c4499fac0..afcfde556 100644
--- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs
+++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
@@ -66,22 +66,35 @@ namespace MediaBrowser.Server.Implementations.Dto
/// <exception cref="System.ArgumentNullException">item</exception>
public BaseItemDto GetBaseItemDto(BaseItem item, List<ItemFields> fields, User user = null, BaseItem owner = null)
{
+ var dto = GetBaseItemDtoInternal(item, fields, user, owner);
+
var byName = item as IItemByName;
- if (byName != null)
+ if (byName != null && !(item is LiveTvChannel))
{
- var libraryItems = user != null ?
- user.RootFolder.GetRecursiveChildren(user) :
- _libraryManager.RootFolder.RecursiveChildren;
+ IEnumerable<BaseItem> libraryItems;
+
+ var artist = item as MusicArtist;
- var dto = GetBaseItemDtoInternal(item, fields, user);
+ if (artist == null || artist.IsAccessedByName)
+ {
+ libraryItems = user != null ?
+ user.RootFolder.GetRecursiveChildren(user) :
+ _libraryManager.RootFolder.RecursiveChildren;
+ }
+ else
+ {
+ libraryItems = user != null ?
+ artist.GetRecursiveChildren(user) :
+ artist.RecursiveChildren;
+ }
SetItemByNameInfo(item, dto, byName.GetTaggedItems(libraryItems).ToList(), user);
return dto;
}
- return GetBaseItemDtoInternal(item, fields, user, owner);
+ return dto;
}
private BaseItemDto GetBaseItemDtoInternal(BaseItem item, List<ItemFields> fields, User user = null, BaseItem owner = null)