Radarr/src/NzbDrone.Api/Wanted/MovieMissingModule.cs

41 lines
1.5 KiB
C#
Raw Normal View History

2018-11-23 07:03:32 +00:00
using System.Linq;
using NzbDrone.Api.Movies;
using NzbDrone.Core.DecisionEngine.Specifications;
using NzbDrone.Core.Movies;
using NzbDrone.Core.Datastore;
using NzbDrone.SignalR;
2018-11-23 07:03:32 +00:00
using Radarr.Http;
namespace NzbDrone.Api.Wanted
{
class MovieMissingModule : MovieModuleWithSignalR
{
2019-12-22 21:24:11 +00:00
public MovieMissingModule(IMovieService movieService,
IUpgradableSpecification qualityUpgradableSpecification,
IBroadcastSignalRMessage signalRBroadcaster)
: base(movieService, qualityUpgradableSpecification, signalRBroadcaster, "wanted/missing")
{
GetResourcePaged = GetMissingMovies;
}
private PagingResource<MovieResource> GetMissingMovies(PagingResource<MovieResource> pagingResource)
{
2018-11-23 07:03:32 +00:00
var pagingSpec = pagingResource.MapToPagingSpec<MovieResource, Movie>("title", SortDirection.Descending);
var monitoredFilter = pagingResource.Filters.FirstOrDefault(f => f.Key == "monitored");
2018-11-23 07:03:32 +00:00
if (monitoredFilter != null && monitoredFilter.Value == "false")
{
pagingSpec.FilterExpressions.Add(v => v.Monitored == false);
}
else
{
pagingSpec.FilterExpressions.Add(v => v.Monitored == true);
}
var resource = ApplyToPage(_movieService.MoviesWithoutFiles, pagingSpec, v => MapToResource(v, true));
return resource;
}
}
}