Пример #1
0
        public object Get(GetSeasons request)
        {
            var user = _userManager.GetUserById(request.UserId);

            var series = _libraryManager.GetItemById(request.Id) as Series;

            if (series == null)
            {
                throw new ResourceNotFoundException("No series exists with Id " + request.Id);
            }

            var seasons = series.GetSeasons(user);

            if (request.IsSpecialSeason.HasValue)
            {
                var val = request.IsSpecialSeason.Value;

                seasons = seasons.Where(i => i.IsSpecialSeason == val);
            }

            seasons = FilterVirtualSeasons(request, seasons);

            // This must be the last filter
            if (!string.IsNullOrEmpty(request.AdjacentTo))
            {
                seasons = ItemsService.FilterForAdjacency(seasons, request.AdjacentTo)
                          .Cast <Season>();
            }

            var fields = request.GetItemFields().ToList();

            var returnItems = seasons.Select(i => _dtoService.GetBaseItemDto(i, fields, user))
                              .ToArray();

            return(new ItemsResult
            {
                TotalRecordCount = returnItems.Length,
                Items = returnItems
            });
        }
Пример #2
0
        public object Get(GetEpisodes request)
        {
            var user = _userManager.GetUserById(request.UserId);

            IEnumerable <Episode> episodes;

            if (string.IsNullOrEmpty(request.SeasonId))
            {
                var series = _libraryManager.GetItemById(request.Id) as Series;

                if (series == null)
                {
                    throw new ResourceNotFoundException("No series exists with Id " + request.Id);
                }

                episodes = series.GetEpisodes(user, request.Season.Value);
            }
            else
            {
                var season = _libraryManager.GetItemById(new Guid(request.SeasonId)) as Season;

                if (season == null)
                {
                    throw new ResourceNotFoundException("No season exists with Id " + request.SeasonId);
                }

                episodes = season.GetEpisodes(user);
            }

            // Filter after the fact in case the ui doesn't want them
            if (request.IsMissing.HasValue)
            {
                var val = request.IsMissing.Value;
                episodes = episodes.Where(i => i.IsMissingEpisode == val);
            }

            // Filter after the fact in case the ui doesn't want them
            if (request.IsVirtualUnaired.HasValue)
            {
                var val = request.IsVirtualUnaired.Value;
                episodes = episodes.Where(i => i.IsVirtualUnaired == val);
            }

            // This must be the last filter
            if (!string.IsNullOrEmpty(request.AdjacentTo))
            {
                episodes = ItemsService.FilterForAdjacency(episodes, request.AdjacentTo)
                           .Cast <Episode>();
            }

            var fields = request.GetItemFields().ToList();

            episodes = _libraryManager.ReplaceVideosWithPrimaryVersions(episodes).Cast <Episode>();

            var returnItems = episodes.Select(i => _dtoService.GetBaseItemDto(i, fields, user))
                              .ToArray();

            return(new ItemsResult
            {
                TotalRecordCount = returnItems.Length,
                Items = returnItems
            });
        }