using System.Linq; using NzbDrone.Api.Episodes; using NzbDrone.Api.Extensions; using NzbDrone.Core.Datastore; using NzbDrone.Core.Tv; namespace NzbDrone.Api.Missing { public class MissingModule : NzbDroneRestModule { private readonly IEpisodeService _episodeService; private readonly SeriesRepository _seriesRepository; public MissingModule(IEpisodeService episodeService, SeriesRepository seriesRepository) :base("missing") { _episodeService = episodeService; _seriesRepository = seriesRepository; GetResourcePaged = GetMissingEpisodes; } private PagingResource GetMissingEpisodes(PagingResource pagingResource) { var pagingSpec = new PagingSpec { Page = pagingResource.Page, PageSize = pagingResource.PageSize, SortKey = pagingResource.SortKey, SortDirection = pagingResource.SortDirection }; var resource = ApplyToPage(_episodeService.EpisodesWithoutFiles, pagingSpec); resource.Records = resource.Records.LoadSubtype(e => e.SeriesId, _seriesRepository).ToList(); return resource; } } }