@ -30,7 +30,8 @@ namespace NzbDrone.Core.Tv
void SetMonitoredFlat ( Episode episode , bool monitored ) ;
void SetMonitoredBySeason ( int seriesId , int seasonNumber , bool monitored ) ;
void SetMonitored ( IEnumerable < int > ids , bool monitored ) ;
void SetFileId ( int episodeId , int fileId ) ;
void SetFileId ( Episode episode , int fileId ) ;
void ClearFileId ( Episode episode , bool unmonitor ) ;
}
public class EpisodeRepository : BasicRepository < Episode > , IEpisodeRepository
@ -163,6 +164,8 @@ namespace NzbDrone.Core.Tv
{
episode . Monitored = monitored ;
SetFields ( episode , p = > p . Monitored ) ;
ModelUpdated ( episode , true ) ;
}
public void SetMonitoredBySeason ( int seriesId , int seasonNumber , bool monitored )
@ -173,30 +176,39 @@ namespace NzbDrone.Core.Tv
mapper . AddParameter ( "seasonNumber" , seasonNumber ) ;
mapper . AddParameter ( "monitored" , monitored ) ;
const string sql = "UPDATE Episodes " +
"SET Monitored = @monitored " +
"WHERE SeriesId = @seriesId " +
"AND SeasonNumber = @seasonNumber" ;
var sqlUpdate = $"UPDATE Episodes SET Monitored = @monitored WHERE SeriesId = @seriesId AND SeasonNumber = @seasonNumber AND Monitored != @monitored" ;
mapper . ExecuteNonQuery ( sql ) ;
mapper . ExecuteNonQuery ( sqlUpdate ) ;
}
public void SetMonitored ( IEnumerable < int > ids , bool monitored )
{
var mapper = _database. Get DataMapper( ) ;
var mapper = DataMapper;
mapper . AddParameter ( "monitored" , monitored ) ;
var sql = "UPDATE Episodes " +
"SET Monitored = @monitored " +
$"WHERE Id IN ({string.Join(" , ", ids)})" ;
var sqlUpdate = $"UPDATE Episodes SET Monitored = @monitored WHERE Id IN ({string.Join(" , ", ids)}) AND Monitored != @monitored" ;
mapper . ExecuteNonQuery ( sqlUpdate ) ;
}
public void SetFileId ( Episode episode , int fileId )
{
episode . EpisodeFileId = fileId ;
SetFields ( episode , ep = > ep . EpisodeFileId ) ;
mapper . ExecuteNonQuery ( sql ) ;
ModelUpdated( episode , true ) ;
}
public void SetFileId ( int episodeId , int fileId )
public void ClearFileId( Episode episode , bool unmonitor )
{
SetFields ( new Episode { Id = episodeId , EpisodeFileId = fileId } , episode = > episode . EpisodeFileId ) ;
episode . EpisodeFileId = 0 ;
episode . Monitored & = ! unmonitor ;
SetFields ( episode , ep = > ep . EpisodeFileId , ep = > ep . Monitored ) ;
ModelUpdated ( episode , true ) ;
}
private SortBuilder < Episode > GetMissingEpisodesQuery ( PagingSpec < Episode > pagingSpec , DateTime currentTime , int startingSeasonNumber )