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 }); }
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 }); }