diff --git a/src/NzbDrone.Api/Blacklist/BlacklistResource.cs b/src/NzbDrone.Api/Blacklist/BlacklistResource.cs index c3f1c6b1b..f29a2a8cb 100644 --- a/src/NzbDrone.Api/Blacklist/BlacklistResource.cs +++ b/src/NzbDrone.Api/Blacklist/BlacklistResource.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using NzbDrone.Api.Movie; using NzbDrone.Api.REST; using NzbDrone.Core.Qualities; using NzbDrone.Api.Series; @@ -11,13 +12,14 @@ namespace NzbDrone.Api.Blacklist { public int SeriesId { get; set; } public List EpisodeIds { get; set; } + public int MovieId { get; set; } public string SourceTitle { get; set; } public QualityModel Quality { get; set; } public DateTime Date { get; set; } public DownloadProtocol Protocol { get; set; } public string Indexer { get; set; } public string Message { get; set; } - + public MovieResource Movie { get; set; } public SeriesResource Series { get; set; } } @@ -30,7 +32,7 @@ namespace NzbDrone.Api.Blacklist return new BlacklistResource { Id = model.Id, - + MovieId = model.MovieId, SeriesId = model.SeriesId, EpisodeIds = model.EpisodeIds, SourceTitle = model.SourceTitle, @@ -39,7 +41,7 @@ namespace NzbDrone.Api.Blacklist Protocol = model.Protocol, Indexer = model.Indexer, Message = model.Message, - + Movie = model.Movie.ToResource(), Series = model.Series.ToResource() }; } diff --git a/src/NzbDrone.Core/Blacklisting/Blacklist.cs b/src/NzbDrone.Core/Blacklisting/Blacklist.cs index 1c0813ac0..18f4f9de2 100644 --- a/src/NzbDrone.Core/Blacklisting/Blacklist.cs +++ b/src/NzbDrone.Core/Blacklisting/Blacklist.cs @@ -11,6 +11,8 @@ namespace NzbDrone.Core.Blacklisting { public int SeriesId { get; set; } public Series Series { get; set; } + public int MovieId { get; set; } + public Movie Movie { get; set; } public List EpisodeIds { get; set; } public string SourceTitle { get; set; } public QualityModel Quality { get; set; } diff --git a/src/NzbDrone.Core/Blacklisting/BlacklistRepository.cs b/src/NzbDrone.Core/Blacklisting/BlacklistRepository.cs index 906f2a92b..4094c1519 100644 --- a/src/NzbDrone.Core/Blacklisting/BlacklistRepository.cs +++ b/src/NzbDrone.Core/Blacklisting/BlacklistRepository.cs @@ -10,7 +10,7 @@ namespace NzbDrone.Core.Blacklisting { List BlacklistedByTitle(int seriesId, string sourceTitle); List BlacklistedByTorrentInfoHash(int seriesId, string torrentInfoHash); - List BlacklistedBySeries(int seriesId); + List BlacklistedByMovie(int seriesId); } public class BlacklistRepository : BasicRepository, IBlacklistRepository @@ -20,15 +20,15 @@ namespace NzbDrone.Core.Blacklisting { } - public List BlacklistedByTitle(int seriesId, string sourceTitle) + public List BlacklistedByTitle(int movieId, string sourceTitle) { - return Query.Where(e => e.SeriesId == seriesId) + return Query.Where(e => e.MovieId == movieId) .AndWhere(e => e.SourceTitle.Contains(sourceTitle)); } - public List BlacklistedByTorrentInfoHash(int seriesId, string torrentInfoHash) + public List BlacklistedByTorrentInfoHash(int movieId, string torrentInfoHash) { - return Query.Where(e => e.SeriesId == seriesId) + return Query.Where(e => e.MovieId == movieId) .AndWhere(e => e.TorrentInfoHash.Contains(torrentInfoHash)); } @@ -37,9 +37,14 @@ namespace NzbDrone.Core.Blacklisting return Query.Where(b => b.SeriesId == seriesId); } + public List BlacklistedByMovie(int movieId) + { + return Query.Where(b => b.MovieId == movieId); + } + protected override SortBuilder GetPagedQuery(QueryBuilder query, PagingSpec pagingSpec) { - var baseQuery = query.Join(JoinType.Inner, h => h.Series, (h, s) => h.SeriesId == s.Id); + var baseQuery = query.Join(JoinType.Inner, h => h.Movie, (h, s) => h.MovieId == s.Id); return base.GetPagedQuery(baseQuery, pagingSpec); } diff --git a/src/NzbDrone.Core/Blacklisting/BlacklistService.cs b/src/NzbDrone.Core/Blacklisting/BlacklistService.cs index 1c0829004..ded7338f3 100644 --- a/src/NzbDrone.Core/Blacklisting/BlacklistService.cs +++ b/src/NzbDrone.Core/Blacklisting/BlacklistService.cs @@ -21,7 +21,7 @@ namespace NzbDrone.Core.Blacklisting IExecute, IHandle, - IHandleAsync + IHandleAsync { private readonly IBlacklistRepository _blacklistRepository; @@ -128,8 +128,9 @@ namespace NzbDrone.Core.Blacklisting { var blacklist = new Blacklist { - SeriesId = message.SeriesId, + SeriesId = 0, EpisodeIds = message.EpisodeIds, + MovieId = message.MovieId, SourceTitle = message.SourceTitle, Quality = message.Quality, Date = DateTime.UtcNow, @@ -144,9 +145,9 @@ namespace NzbDrone.Core.Blacklisting _blacklistRepository.Insert(blacklist); } - public void HandleAsync(SeriesDeletedEvent message) + public void HandleAsync(MovieDeletedEvent message) { - var blacklisted = _blacklistRepository.BlacklistedBySeries(message.Series.Id); + var blacklisted = _blacklistRepository.BlacklistedByMovie(message.Movie.Id); _blacklistRepository.DeleteMany(blacklisted); } diff --git a/src/NzbDrone.Core/Datastore/Migration/122_add_movieid_to_blacklist.cs b/src/NzbDrone.Core/Datastore/Migration/122_add_movieid_to_blacklist.cs new file mode 100644 index 000000000..79b38bfe2 --- /dev/null +++ b/src/NzbDrone.Core/Datastore/Migration/122_add_movieid_to_blacklist.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using FluentMigrator; +using NzbDrone.Core.Datastore.Migration.Framework; +using System.Data; + +namespace NzbDrone.Core.Datastore.Migration +{ + [Migration(122)] + public class add_movieid_to_blacklist : NzbDroneMigrationBase + { + protected override void MainDbUpgrade() + { + Alter.Table("Blacklist").AddColumn("MovieId").AsInt32().Nullable().WithDefaultValue(0); + Alter.Table("Blacklist").AlterColumn("SeriesId").AsInt32().Nullable(); + Alter.Table("Blacklist").AlterColumn("EpisodeIds").AsString().Nullable(); + } + + } +} diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj index 1c5d20daf..1db0a9581 100644 --- a/src/NzbDrone.Core/NzbDrone.Core.csproj +++ b/src/NzbDrone.Core/NzbDrone.Core.csproj @@ -183,6 +183,7 @@ +