@ -7,24 +7,26 @@ using Ombi.Core.Models.Requests.Tv;
using Ombi.Core.Models.Search ;
using Ombi.Core.Requests.Models ;
using Ombi.Core.Rule.Interfaces ;
using Ombi.Store.Repository ;
using Ombi.Store.Repository.Requests ;
namespace Ombi.Core.Rule.Rules.Search
{
public class ExistingRequestRule : BaseSearchRule , IRequestRules < SearchViewModel >
{
public ExistingRequestRule ( I RequestService< MovieRequestModel > movie , IRequestService < TvRequestModel > tv )
public ExistingRequestRule ( I MovieRequestRepository movie , ITvRequestRepository tv )
{
Movie = movie ;
Tv = tv ;
}
private I RequestService< MovieRequestModel > Movie { get ; }
private I RequestService< TvRequestModel > Tv { get ; }
private I MovieRequestRepository Movie { get ; }
private I TvRequestRepository Tv { get ; }
public async Task < RuleResult > Execute ( SearchViewModel obj )
{
var movieRequests = await Movie . Get AllAsync ( ) ;
var existing = movieRequests . FirstOrDefault ( x = > x . Provider Id = = obj . Id ) ;
var movieRequests = Movie . Get ( ) ;
var existing = await movieRequests . FirstOrDefault Async ( x = > x . TheMovieDb Id = = obj . Id ) ;
if ( existing ! = null ) // Do we already have a request for this?
{
@ -35,14 +37,14 @@ namespace Ombi.Core.Rule.Rules.Search
return Success ( ) ;
}
var tvRequests = await Tv . Get AllAsync ( ) ;
var tv = tvRequests . FirstOrDefault ( x = > x . Provider Id = = obj . Id ) ;
var tvRequests = Tv . Get ( ) ;
var tv = await tvRequests . FirstOrDefault Async ( x = > x . TvDb Id = = obj . Id ) ;
if ( tv ! = null ) // Do we already have a request for this?
{
obj . Requested = true ;
obj . Approved = tv . Approved;
obj . Available = tv . Available;
obj . Approved = tv . ChildRequests. Any ( x = > x . Approved) ;
obj . Available = tv . ChildRequests. Any ( x = > x . Available) ;
return Success ( ) ;
}