예제 #1
0
        public ThemeMediaResult GetSoundtrackSongs(GetThemeMedia request, string id, Guid?userId, bool inheritFromParent)
        {
            var user = userId.HasValue ? _userManager.GetUserById(userId.Value) : null;

            var item = string.IsNullOrEmpty(id)
                           ? (userId.HasValue
                                  ? user.RootFolder
                                  : _libraryManager.RootFolder)
                           : _libraryManager.GetItemById(id);

            var dtoOptions = GetDtoOptions(request);

            var dtos = GetSoundtrackSongIds(item, inheritFromParent)
                       .Select(_libraryManager.GetItemById)
                       .OfType <MusicAlbum>()
                       .SelectMany(i => i.GetRecursiveChildren(a => a is Audio))
                       .OrderBy(i => i.SortName)
                       .Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user, item));

            var items = dtos.ToArray();

            return(new ThemeMediaResult
            {
                Items = items,
                TotalRecordCount = items.Length,
                OwnerId = _dtoService.GetDtoId(item)
            });
        }
예제 #2
0
        public object Get(GetThemeMedia request)
        {
            var themeSongs = GetThemeSongs(new GetThemeSongs
            {
                InheritFromParent = request.InheritFromParent,
                Id     = request.Id,
                UserId = request.UserId
            });

            var themeVideos = GetThemeVideos(new GetThemeVideos
            {
                InheritFromParent = request.InheritFromParent,
                Id     = request.Id,
                UserId = request.UserId
            });

            return(ToOptimizedSerializedResultUsingCache(new AllThemeMediaResult
            {
                ThemeSongsResult = themeSongs,
                ThemeVideosResult = themeVideos,

                SoundtrackSongsResult = GetSoundtrackSongs(request.Id, request.UserId, request.InheritFromParent)
            }));
        }