@ -41,7 +41,7 @@ namespace NzbDrone.Core.Tv
bool MoviePathExists ( string folder ) ;
void RemoveAddOptions ( Movie movie ) ;
List < Movie > MoviesWithFiles ( int movieId ) ;
System . Linq . Expressions . Expression < Func < Core . Tv . Movie , bool > > ConstructFilterExpression ( string FilterKey , string FilterValue );
System . Linq . Expressions . Expression < Func < Core . Tv . Movie , bool > > ConstructFilterExpression ( string FilterKey , string FilterValue , string filterType = null );
}
public class MovieService : IMovieService , IHandle < MovieFileAddedEvent > ,
@ -69,42 +69,65 @@ namespace NzbDrone.Core.Tv
}
public System . Linq . Expressions . Expression < Func < Core . Tv . Movie , bool > > ConstructFilterExpression ( string FilterKey , string FilterValue )
public System . Linq . Expressions . Expression < Func < Core . Tv . Movie , bool > > ConstructFilterExpression ( string FilterKey , string FilterValue , string FilterType = null )
{
if ( FilterKey = = "all" & & FilterValue = = "all" )
{
return v = > v . Monitored = = true | | v . Monitored = = false ;
}
else if ( FilterKey = = " monitored" & & FilterValue = = "false" )
//if (FilterKey == "all" && FilterValue == "all" )
// {
// return v => v.Monitored == true || v.Monitored == false;
// }
if ( FilterKey = = " movie monitored" & & FilterValue = = "false" )
{
return v = > v . Monitored = = false ;
}
else if ( FilterKey = = "mo nitored" & & FilterValue = = "true" )
else if ( FilterKey = = "mo viemo nitored" & & FilterValue = = "true" )
{
return v = > v . Monitored = = true ;
}
else if ( FilterKey = = "moviestatus" & & FilterValue = = "available" )
else if ( FilterKey = = "moviestatus" )
{
//TODO: might need to handle PreDB here
return v = > v . Monitored = = true & &
switch ( FilterValue )
{
case "released" :
return v = > v . Status = = MovieStatusType . Released ;
break ;
case "inCinemas" :
return v = > v . Status = = MovieStatusType . InCinemas ;
break ;
case "announced" :
return v = > v . Status = = MovieStatusType . Announced ;
break ;
case "available" :
return v = > v . Monitored = = true & &
( ( v . MinimumAvailability = = MovieStatusType . Released & & v . Status > = MovieStatusType . Released ) | |
( v . MinimumAvailability = = MovieStatusType . InCinemas & & v . Status > = MovieStatusType . InCinemas ) | |
( v . MinimumAvailability = = MovieStatusType . Announced & & v . Status > = MovieStatusType . Announced ) | |
( v . MinimumAvailability = = MovieStatusType . PreDB & & v . Status > = MovieStatusType . Released ) ) ;
break ;
}
}
else if ( FilterKey = = "moviestatus" & & FilterValue = = "announced" )
{
return v = > v . Status = = MovieStatusType . Announced ;
}
else if ( FilterKey = = "moviestatus" & & FilterValue = = "incinemas" )
else if ( FilterKey = = "moviedownloaded" )
{
return v = > v . Status = = MovieStatusType . InCinemas ;
return v = > v . MovieFileId = = 0 ;
}
else if ( FilterKey = = " movies tatus" & & F il terValue = = "re leased ")
else if ( FilterKey = = "title" )
{
return v = > v . Status = = MovieStatusType . Released ;
if ( FilterValue = = string . Empty | | FilterValue = = null )
{
return v = > true ;
}
else
{
if ( FilterType = = "contains" )
{
return v = > v . CleanTitle . Contains ( FilterValue ) ;
}
else
{
return v = > v . CleanTitle = = FilterValue ;
}
}
}
return v = > v . Monitored = = true ;
return v = > true ;
}
public Movie GetMovie ( int movieId )