diff --git a/src/NzbDrone.Core.Test/Datastore/DatabaseFixture.cs b/src/NzbDrone.Core.Test/Datastore/DatabaseFixture.cs index e1942d6c3..be8b6c7ec 100644 --- a/src/NzbDrone.Core.Test/Datastore/DatabaseFixture.cs +++ b/src/NzbDrone.Core.Test/Datastore/DatabaseFixture.cs @@ -4,7 +4,7 @@ using FluentAssertions; using NUnit.Framework; using NzbDrone.Core.Datastore; using NzbDrone.Core.Test.Framework; -using NzbDrone.Core.Tv; +using NzbDrone.Core.Music; namespace NzbDrone.Core.Test.Datastore { @@ -14,8 +14,8 @@ namespace NzbDrone.Core.Test.Datastore public void SingleOrDefault_should_return_null_on_empty_db() { Mocker.Resolve() - .GetDataMapper().Query() - .SingleOrDefault(c => c.CleanTitle == "SomeTitle") + .GetDataMapper().Query() + .SingleOrDefault(c => c.CleanName == "SomeTitle") .Should() .BeNull(); } @@ -33,4 +33,4 @@ namespace NzbDrone.Core.Test.Datastore Mocker.Resolve().Version.Should().BeGreaterThan(new Version("3.0.0")); } } -} \ No newline at end of file +} diff --git a/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs b/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs index fbd8f295d..0eb08c688 100644 --- a/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs +++ b/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs @@ -5,7 +5,7 @@ using NUnit.Framework; using NzbDrone.Core.MediaFiles; using NzbDrone.Core.Qualities; using NzbDrone.Core.Test.Framework; -using NzbDrone.Core.Tv; +using NzbDrone.Core.Music; using NzbDrone.Core.Languages; namespace NzbDrone.Core.Test.Datastore @@ -16,41 +16,41 @@ namespace NzbDrone.Core.Test.Datastore [Test] public void one_to_one() { - var episodeFile = Builder.CreateNew() + var trackFile = Builder.CreateNew() .With(c => c.Quality = new QualityModel()) .With(c => c.Language = Language.English) .BuildNew(); - Db.Insert(episodeFile); + Db.Insert(trackFile); - var episode = Builder.CreateNew() - .With(c => c.EpisodeFileId = episodeFile.Id) + var track = Builder.CreateNew() + .With(c => c.TrackFileId = trackFile.Id) .BuildNew(); - Db.Insert(episode); + Db.Insert(track); - var loadedEpisodeFile = Db.Single().EpisodeFile.Value; + var loadedTrackFile = Db.Single().TrackFile.Value; - loadedEpisodeFile.Should().NotBeNull(); - loadedEpisodeFile.ShouldBeEquivalentTo(episodeFile, + loadedTrackFile.Should().NotBeNull(); + loadedTrackFile.ShouldBeEquivalentTo(trackFile, options => options .IncludingAllRuntimeProperties() .Excluding(c => c.DateAdded) .Excluding(c => c.Path) - .Excluding(c => c.Series) - .Excluding(c => c.Episodes)); + .Excluding(c => c.Artist) + .Excluding(c => c.Tracks)); } [Test] public void one_to_one_should_not_query_db_if_foreign_key_is_zero() { - var episode = Builder.CreateNew() - .With(c => c.EpisodeFileId = 0) + var track = Builder.CreateNew() + .With(c => c.TrackFileId = 0) .BuildNew(); - Db.Insert(episode); + Db.Insert(track); - Db.Single().EpisodeFile.Value.Should().BeNull(); + Db.Single().TrackFile.Value.Should().BeNull(); } diff --git a/src/NzbDrone.Core.Test/Datastore/MappingExtentionFixture.cs b/src/NzbDrone.Core.Test/Datastore/MappingExtentionFixture.cs index 76558e6f1..7db539fc3 100644 --- a/src/NzbDrone.Core.Test/Datastore/MappingExtentionFixture.cs +++ b/src/NzbDrone.Core.Test/Datastore/MappingExtentionFixture.cs @@ -1,11 +1,11 @@ -using System.Collections.Generic; +using System.Collections.Generic; using FluentAssertions; using Marr.Data; using NUnit.Framework; using NzbDrone.Core.Datastore; using NzbDrone.Core.Datastore.Converters; using NzbDrone.Core.Datastore.Extensions; -using NzbDrone.Core.Tv; +using NzbDrone.Core.Music; namespace NzbDrone.Core.Test.Datastore { @@ -30,7 +30,7 @@ namespace NzbDrone.Core.Test.Datastore public class TypeWithNoMappableProperties { - public Series Series { get; set; } + public Artist Artist { get; set; } public int ReadOnly { get; private set; } public int WriteOnly { private get; set; } @@ -62,4 +62,4 @@ namespace NzbDrone.Core.Test.Datastore properties.Should().NotContain(c => MappingExtensions.IsMappableProperty(c)); } } -} \ No newline at end of file +} diff --git a/src/NzbDrone.Core.Test/Datastore/MarrDataLazyLoadingFixture.cs b/src/NzbDrone.Core.Test/Datastore/MarrDataLazyLoadingFixture.cs index 48aaebcbe..f4c9d7cba 100644 --- a/src/NzbDrone.Core.Test/Datastore/MarrDataLazyLoadingFixture.cs +++ b/src/NzbDrone.Core.Test/Datastore/MarrDataLazyLoadingFixture.cs @@ -3,7 +3,7 @@ using NUnit.Framework; using NzbDrone.Core.Datastore; using NzbDrone.Core.Profiles.Qualities; using NzbDrone.Core.Test.Framework; -using NzbDrone.Core.Tv; +using NzbDrone.Core.Music; using NzbDrone.Core.Qualities; using NzbDrone.Core.MediaFiles; using NzbDrone.Core.Languages; @@ -38,30 +38,30 @@ namespace NzbDrone.Core.Test.Datastore profile = Db.Insert(profile); languageProfile = Db.Insert(languageProfile); - var series = Builder.CreateListOfSize(1) + var artist = Builder.CreateListOfSize(1) .All() .With(v => v.ProfileId = profile.Id) .With(v => v.LanguageProfileId = languageProfile.Id) .BuildListOfNew(); - Db.InsertMany(series); + Db.InsertMany(artist); - var episodeFiles = Builder.CreateListOfSize(1) + var trackFiles = Builder.CreateListOfSize(1) .All() - .With(v => v.SeriesId = series[0].Id) + .With(v => v.ArtistId = artist[0].Id) .With(v => v.Quality = new QualityModel()) .BuildListOfNew(); - Db.InsertMany(episodeFiles); + Db.InsertMany(trackFiles); - var episodes = Builder.CreateListOfSize(10) + var tracks = Builder.CreateListOfSize(10) .All() .With(v => v.Monitored = true) - .With(v => v.EpisodeFileId = episodeFiles[0].Id) - .With(v => v.SeriesId = series[0].Id) + .With(v => v.TrackFileId = trackFiles[0].Id) + .With(v => v.ArtistId = artist[0].Id) .BuildListOfNew(); - Db.InsertMany(episodes); + Db.InsertMany(tracks); } [Test] @@ -70,32 +70,32 @@ namespace NzbDrone.Core.Test.Datastore var db = Mocker.Resolve(); var DataMapper = db.GetDataMapper(); - var episodes = DataMapper.Query() - .Join(Marr.Data.QGen.JoinType.Inner, v => v.Series, (l, r) => l.SeriesId == r.Id) + var tracks = DataMapper.Query() + .Join(Marr.Data.QGen.JoinType.Inner, v => v.Artist, (l, r) => l.ArtistId == r.Id) .ToList(); - foreach (var episode in episodes) + foreach (var track in tracks) { - Assert.IsNotNull(episode.Series); - Assert.IsFalse(episode.Series.Profile.IsLoaded); - Assert.IsFalse(episode.Series.LanguageProfile.IsLoaded); + Assert.IsNotNull(track.Artist); + Assert.IsFalse(track.Artist.Profile.IsLoaded); + Assert.IsFalse(track.Artist.LanguageProfile.IsLoaded); } } [Test] - public void should_explicit_load_episodefile_if_joined() + public void should_explicit_load_trackfile_if_joined() { var db = Mocker.Resolve(); var DataMapper = db.GetDataMapper(); - var episodes = DataMapper.Query() - .Join(Marr.Data.QGen.JoinType.Inner, v => v.EpisodeFile, (l, r) => l.EpisodeFileId == r.Id) + var tracks = DataMapper.Query() + .Join(Marr.Data.QGen.JoinType.Inner, v => v.TrackFile, (l, r) => l.TrackFileId == r.Id) .ToList(); - foreach (var episode in episodes) + foreach (var track in tracks) { - Assert.IsNull(episode.Series); - Assert.IsTrue(episode.EpisodeFile.IsLoaded); + Assert.IsNull(track.Artist); + Assert.IsTrue(track.TrackFile.IsLoaded); } } @@ -105,16 +105,16 @@ namespace NzbDrone.Core.Test.Datastore var db = Mocker.Resolve(); var DataMapper = db.GetDataMapper(); - var episodes = DataMapper.Query() - .Join(Marr.Data.QGen.JoinType.Inner, v => v.Series, (l, r) => l.SeriesId == r.Id) - .Join(Marr.Data.QGen.JoinType.Inner, v => v.Profile, (l, r) => l.ProfileId == r.Id) + var tracks = DataMapper.Query() + .Join(Marr.Data.QGen.JoinType.Inner, v => v.Artist, (l, r) => l.ArtistId == r.Id) + .Join(Marr.Data.QGen.JoinType.Inner, v => v.Profile, (l, r) => l.ProfileId == r.Id) .ToList(); - foreach (var episode in episodes) + foreach (var track in tracks) { - Assert.IsNotNull(episode.Series); - Assert.IsTrue(episode.Series.Profile.IsLoaded); - Assert.IsFalse(episode.Series.LanguageProfile.IsLoaded); + Assert.IsNotNull(track.Artist); + Assert.IsTrue(track.Artist.Profile.IsLoaded); + Assert.IsFalse(track.Artist.LanguageProfile.IsLoaded); } } @@ -124,16 +124,16 @@ namespace NzbDrone.Core.Test.Datastore var db = Mocker.Resolve(); var DataMapper = db.GetDataMapper(); - var episodes = DataMapper.Query() - .Join(Marr.Data.QGen.JoinType.Inner, v => v.Series, (l, r) => l.SeriesId == r.Id) - .Join(Marr.Data.QGen.JoinType.Inner, v => v.LanguageProfile, (l, r) => l.ProfileId == r.Id) + var tracks = DataMapper.Query() + .Join(Marr.Data.QGen.JoinType.Inner, v => v.Artist, (l, r) => l.ArtistId == r.Id) + .Join(Marr.Data.QGen.JoinType.Inner, v => v.LanguageProfile, (l, r) => l.ProfileId == r.Id) .ToList(); - foreach (var episode in episodes) + foreach (var track in tracks) { - Assert.IsNotNull(episode.Series); - Assert.IsFalse(episode.Series.Profile.IsLoaded); - Assert.IsTrue(episode.Series.LanguageProfile.IsLoaded); + Assert.IsNotNull(track.Artist); + Assert.IsFalse(track.Artist.Profile.IsLoaded); + Assert.IsTrue(track.Artist.LanguageProfile.IsLoaded); } } diff --git a/src/NzbDrone.Core.Test/Datastore/PagingSpecExtensionsTests/PagingOffsetFixture.cs b/src/NzbDrone.Core.Test/Datastore/PagingSpecExtensionsTests/PagingOffsetFixture.cs index 5ece0f8a4..7a39cc708 100644 --- a/src/NzbDrone.Core.Test/Datastore/PagingSpecExtensionsTests/PagingOffsetFixture.cs +++ b/src/NzbDrone.Core.Test/Datastore/PagingSpecExtensionsTests/PagingOffsetFixture.cs @@ -1,8 +1,8 @@ -using FluentAssertions; +using FluentAssertions; using NUnit.Framework; using NzbDrone.Core.Datastore; using NzbDrone.Core.Datastore.Extensions; -using NzbDrone.Core.Tv; +using NzbDrone.Core.Music; namespace NzbDrone.Core.Test.Datastore.PagingSpecExtensionsTests { @@ -14,12 +14,12 @@ namespace NzbDrone.Core.Test.Datastore.PagingSpecExtensionsTests [TestCase(1, 100, 0)] public void should_calcuate_expected_offset(int page, int pageSize, int expected) { - var pagingSpec = new PagingSpec + var pagingSpec = new PagingSpec { Page = page, PageSize = pageSize, SortDirection = SortDirection.Ascending, - SortKey = "AirDate" + SortKey = "ReleaseDate" }; pagingSpec.PagingOffset().Should().Be(expected); diff --git a/src/NzbDrone.Core.Test/Datastore/PagingSpecExtensionsTests/ToSortDirectionFixture.cs b/src/NzbDrone.Core.Test/Datastore/PagingSpecExtensionsTests/ToSortDirectionFixture.cs index d2cecde84..cd70cb4e3 100644 --- a/src/NzbDrone.Core.Test/Datastore/PagingSpecExtensionsTests/ToSortDirectionFixture.cs +++ b/src/NzbDrone.Core.Test/Datastore/PagingSpecExtensionsTests/ToSortDirectionFixture.cs @@ -1,8 +1,8 @@ -using FluentAssertions; +using FluentAssertions; using NUnit.Framework; using NzbDrone.Core.Datastore; using NzbDrone.Core.Datastore.Extensions; -using NzbDrone.Core.Tv; +using NzbDrone.Core.Music; namespace NzbDrone.Core.Test.Datastore.PagingSpecExtensionsTests { @@ -11,12 +11,12 @@ namespace NzbDrone.Core.Test.Datastore.PagingSpecExtensionsTests [Test] public void should_convert_default_to_asc() { - var pagingSpec = new PagingSpec + var pagingSpec = new PagingSpec { Page = 1, PageSize = 10, SortDirection = SortDirection.Default, - SortKey = "AirDate" + SortKey = "ReleaseDate" }; pagingSpec.ToSortDirection().Should().Be(Marr.Data.QGen.SortDirection.Asc); @@ -25,13 +25,13 @@ namespace NzbDrone.Core.Test.Datastore.PagingSpecExtensionsTests [Test] public void should_convert_ascending_to_asc() { - var pagingSpec = new PagingSpec + var pagingSpec = new PagingSpec { Page = 1, PageSize = 10, SortDirection = SortDirection.Ascending, - SortKey = "AirDate" - }; + SortKey = "ReleaseDate" + }; pagingSpec.ToSortDirection().Should().Be(Marr.Data.QGen.SortDirection.Asc); } @@ -39,12 +39,12 @@ namespace NzbDrone.Core.Test.Datastore.PagingSpecExtensionsTests [Test] public void should_convert_descending_to_desc() { - var pagingSpec = new PagingSpec + var pagingSpec = new PagingSpec { Page = 1, PageSize = 10, SortDirection = SortDirection.Descending, - SortKey = "AirDate" + SortKey = "ReleaseDate" }; pagingSpec.ToSortDirection().Should().Be(Marr.Data.QGen.SortDirection.Desc); diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/Search/ArtistSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/Search/ArtistSpecificationFixture.cs index 443bb0c75..423d2614f 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/Search/ArtistSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/Search/ArtistSpecificationFixture.cs @@ -1,10 +1,9 @@ -using FizzWare.NBuilder; +using FizzWare.NBuilder; using FluentAssertions; using NUnit.Framework; using NzbDrone.Core.DecisionEngine.Specifications.Search; using NzbDrone.Core.IndexerSearch.Definitions; using NzbDrone.Core.Parser.Model; -using NzbDrone.Core.Tv; using NzbDrone.Core.Music; using NzbDrone.Test.Common; diff --git a/src/NzbDrone.Core.Test/Download/CompletedDownloadServiceFixture.cs b/src/NzbDrone.Core.Test/Download/CompletedDownloadServiceFixture.cs index 364667196..b2fbc558f 100644 --- a/src/NzbDrone.Core.Test/Download/CompletedDownloadServiceFixture.cs +++ b/src/NzbDrone.Core.Test/Download/CompletedDownloadServiceFixture.cs @@ -15,7 +15,6 @@ using NzbDrone.Core.Messaging.Events; using NzbDrone.Core.Parser; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Test.Framework; -using NzbDrone.Core.Tv; using NzbDrone.Core.Music; using NzbDrone.Test.Common; diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/DownloadClientFixtureBase.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/DownloadClientFixtureBase.cs index f22b7f77e..1f0dfd4c0 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/DownloadClientFixtureBase.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/DownloadClientFixtureBase.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using Moq; using NUnit.Framework; @@ -8,7 +8,6 @@ using NzbDrone.Core.IndexerSearch.Definitions; using NzbDrone.Core.Test.Framework; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Parser; -using NzbDrone.Core.Tv; using NzbDrone.Core.Music; using NzbDrone.Core.Download; using NzbDrone.Core.Configuration; diff --git a/src/NzbDrone.Core.Test/IndexerSearchTests/ArtistSearchServiceFixture.cs b/src/NzbDrone.Core.Test/IndexerSearchTests/ArtistSearchServiceFixture.cs index 102728827..1bfc87813 100644 --- a/src/NzbDrone.Core.Test/IndexerSearchTests/ArtistSearchServiceFixture.cs +++ b/src/NzbDrone.Core.Test/IndexerSearchTests/ArtistSearchServiceFixture.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using FluentAssertions; using Moq; @@ -7,7 +7,6 @@ using NzbDrone.Core.DecisionEngine; using NzbDrone.Core.Download; using NzbDrone.Core.IndexerSearch; using NzbDrone.Core.Test.Framework; -using NzbDrone.Core.Tv; using NzbDrone.Core.Messaging.Commands; using NzbDrone.Core.Music; diff --git a/src/NzbDrone.Core.Test/Instrumentation/DatabaseTargetFixture.cs b/src/NzbDrone.Core.Test/Instrumentation/DatabaseTargetFixture.cs index 716b5c042..d67035ffb 100644 --- a/src/NzbDrone.Core.Test/Instrumentation/DatabaseTargetFixture.cs +++ b/src/NzbDrone.Core.Test/Instrumentation/DatabaseTargetFixture.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Threading; using FluentAssertions; using Marr.Data; @@ -118,7 +118,7 @@ namespace NzbDrone.Core.Test.Instrumentation [Test] public void null_string_as_arg_should_not_fail() { - var epFile = new EpisodeFile(); + var epFile = new TrackFile(); _logger.Debug("File {0} no longer exists on disk. removing from database.", epFile.RelativePath); Thread.Sleep(600); diff --git a/src/NzbDrone.Core.Test/Languages/LanguageProfileServiceFixture.cs b/src/NzbDrone.Core.Test/Languages/LanguageProfileServiceFixture.cs index 873787d13..94ff97dcb 100644 --- a/src/NzbDrone.Core.Test/Languages/LanguageProfileServiceFixture.cs +++ b/src/NzbDrone.Core.Test/Languages/LanguageProfileServiceFixture.cs @@ -1,10 +1,10 @@ -using System.Linq; +using System.Linq; using FizzWare.NBuilder; using Moq; using NUnit.Framework; using NzbDrone.Core.Lifecycle; using NzbDrone.Core.Test.Framework; -using NzbDrone.Core.Tv; +using NzbDrone.Core.Music; using NzbDrone.Core.Profiles.Languages; namespace NzbDrone.Core.Test.Languages @@ -39,15 +39,15 @@ namespace NzbDrone.Core.Test.Languages [Test] - public void should_not_be_able_to_delete_profile_if_assigned_to_series() + public void should_not_be_able_to_delete_profile_if_assigned_to_artist() { - var seriesList = Builder.CreateListOfSize(3) + var artistList = Builder.CreateListOfSize(3) .Random(1) .With(c => c.LanguageProfileId = 2) .Build().ToList(); - Mocker.GetMock().Setup(c => c.GetAllSeries()).Returns(seriesList); + Mocker.GetMock().Setup(c => c.GetAllArtists()).Returns(artistList); Assert.Throws(() => Subject.Delete(2)); @@ -59,17 +59,17 @@ namespace NzbDrone.Core.Test.Languages [Test] public void should_delete_profile_if_not_assigned_to_series() { - var seriesList = Builder.CreateListOfSize(3) + var artistList = Builder.CreateListOfSize(3) .All() .With(c => c.LanguageProfileId = 2) .Build().ToList(); - Mocker.GetMock().Setup(c => c.GetAllSeries()).Returns(seriesList); + Mocker.GetMock().Setup(c => c.GetAllArtists()).Returns(artistList); Subject.Delete(1); Mocker.GetMock().Verify(c => c.Delete(1), Times.Once()); } } -} \ No newline at end of file +} diff --git a/src/NzbDrone.Core.Test/MediaFiles/ImportApprovedEpisodesFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/ImportApprovedEpisodesFixture.cs index 38f3cbebe..200b7a9ec 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/ImportApprovedEpisodesFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/ImportApprovedEpisodesFixture.cs @@ -128,14 +128,14 @@ namespace NzbDrone.Core.Test.MediaFiles Times.Once()); } - [Test] - public void should_publish_EpisodeImportedEvent_for_new_downloads() - { - Subject.Import(new List { _approvedDecisions.First() }, true); + //[Test] + //public void should_publish_EpisodeImportedEvent_for_new_downloads() + //{ + // Subject.Import(new List { _approvedDecisions.First() }, true); - Mocker.GetMock() - .Verify(v => v.PublishEvent(It.IsAny()), Times.Once()); - } + // Mocker.GetMock() + // .Verify(v => v.PublishEvent(It.IsAny()), Times.Once()); + //} [Test] public void should_not_move_existing_files() diff --git a/src/NzbDrone.Core.Test/MediaFiles/MediaFileServiceTests/FilterFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/MediaFileServiceTests/FilterFixture.cs index bc5f5c0b0..96aee6685 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/MediaFileServiceTests/FilterFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/MediaFileServiceTests/FilterFixture.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.IO; using System.Linq; using FluentAssertions; @@ -6,7 +6,6 @@ using Moq; using NUnit.Framework; using NzbDrone.Core.MediaFiles; using NzbDrone.Core.Test.Framework; -using NzbDrone.Core.Tv; using NzbDrone.Core.Music; using NzbDrone.Test.Common; @@ -148,4 +147,4 @@ namespace NzbDrone.Core.Test.MediaFiles.MediaFileServiceTests Subject.FilterExistingFiles(files, _artist).Should().Contain(files.First()); } } -} \ No newline at end of file +} diff --git a/src/NzbDrone.Core.Test/MediaFiles/UpgradeMediaFileServiceFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/UpgradeMediaFileServiceFixture.cs index b37474f1d..350c1f257 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/UpgradeMediaFileServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/UpgradeMediaFileServiceFixture.cs @@ -9,7 +9,6 @@ using NzbDrone.Common.Disk; using NzbDrone.Core.MediaFiles; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Test.Framework; -using NzbDrone.Core.Tv; using NzbDrone.Core.Music; using NzbDrone.Test.Common; diff --git a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj index bc6f08b3a..4f6124184 100644 --- a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj +++ b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj @@ -331,7 +331,7 @@ - + diff --git a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetArtistFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetArtistFixture.cs new file mode 100644 index 000000000..a24043507 --- /dev/null +++ b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetArtistFixture.cs @@ -0,0 +1,34 @@ +using Moq; +using NUnit.Framework; +using NzbDrone.Core.Parser; +using NzbDrone.Core.Test.Framework; +using NzbDrone.Core.Music; + +namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests +{ + [TestFixture] + public class GetArtistFixture : CoreTest + { + [Test] + public void should_use_passed_in_title_when_it_cannot_be_parsed() + { + const string title = "30 Rock"; + + Subject.GetArtist(title); + + Mocker.GetMock() + .Verify(s => s.FindByName(title), Times.Once()); + } + + [Test] + public void should_use_parsed_artist_title() + { + const string title = "30 Rock - Get Some [FLAC]"; + + Subject.GetArtist(title); + + Mocker.GetMock() + .Verify(s => s.FindByName(Parser.Parser.ParseAlbumTitle(title).ArtistName), Times.Once()); + } + } +} diff --git a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetSeriesFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetSeriesFixture.cs deleted file mode 100644 index bf4b399b5..000000000 --- a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetSeriesFixture.cs +++ /dev/null @@ -1,47 +0,0 @@ -using Moq; -using NUnit.Framework; -using NzbDrone.Core.Parser; -using NzbDrone.Core.Test.Framework; -using NzbDrone.Core.Tv; - -namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests -{ - [TestFixture] - public class GetSeriesFixture : CoreTest - { - [Test] - public void should_use_passed_in_title_when_it_cannot_be_parsed() - { - const string title = "30 Rock"; - - Subject.GetSeries(title); - - Mocker.GetMock() - .Verify(s => s.FindByTitle(title), Times.Once()); - } - - [Test] - public void should_use_parsed_series_title() - { - const string title = "30.Rock.S01E01.720p.hdtv"; - - Subject.GetSeries(title); - - Mocker.GetMock() - .Verify(s => s.FindByTitle(Parser.Parser.ParseTitle(title).SeriesTitle), Times.Once()); - } - - [Test] - public void should_fallback_to_title_without_year_and_year_when_title_lookup_fails() - { - const string title = "House.2004.S01E01.720p.hdtv"; - var parsedEpisodeInfo = Parser.Parser.ParseTitle(title); - - Subject.GetSeries(title); - - Mocker.GetMock() - .Verify(s => s.FindByTitle(parsedEpisodeInfo.SeriesTitleInfo.TitleWithoutYear, - parsedEpisodeInfo.SeriesTitleInfo.Year), Times.Once()); - } - } -} diff --git a/src/NzbDrone.Core.Test/Profiles/ProfileServiceFixture.cs b/src/NzbDrone.Core.Test/Profiles/ProfileServiceFixture.cs index 4b7060730..65e103ec0 100644 --- a/src/NzbDrone.Core.Test/Profiles/ProfileServiceFixture.cs +++ b/src/NzbDrone.Core.Test/Profiles/ProfileServiceFixture.cs @@ -5,7 +5,7 @@ using NUnit.Framework; using NzbDrone.Core.Lifecycle; using NzbDrone.Core.Profiles.Qualities; using NzbDrone.Core.Test.Framework; -using NzbDrone.Core.Tv; +using NzbDrone.Core.Music; namespace NzbDrone.Core.Test.Profiles { @@ -19,7 +19,7 @@ namespace NzbDrone.Core.Test.Profiles Subject.Handle(new ApplicationStartedEvent()); Mocker.GetMock() - .Verify(v => v.Insert(It.IsAny()), Times.Exactly(6)); + .Verify(v => v.Insert(It.IsAny()), Times.Exactly(3)); } [Test] @@ -39,15 +39,15 @@ namespace NzbDrone.Core.Test.Profiles [Test] - public void should_not_be_able_to_delete_profile_if_assigned_to_series() + public void should_not_be_able_to_delete_profile_if_assigned_to_artist() { - var seriesList = Builder.CreateListOfSize(3) + var artistList = Builder.CreateListOfSize(3) .Random(1) .With(c => c.ProfileId = 2) .Build().ToList(); - Mocker.GetMock().Setup(c => c.GetAllSeries()).Returns(seriesList); + Mocker.GetMock().Setup(c => c.GetAllArtists()).Returns(artistList); Assert.Throws(() => Subject.Delete(2)); @@ -57,15 +57,15 @@ namespace NzbDrone.Core.Test.Profiles [Test] - public void should_delete_profile_if_not_assigned_to_series() + public void should_delete_profile_if_not_assigned_to_artist() { - var seriesList = Builder.CreateListOfSize(3) + var artistList = Builder.CreateListOfSize(3) .All() .With(c => c.ProfileId = 2) .Build().ToList(); - Mocker.GetMock().Setup(c => c.GetAllSeries()).Returns(seriesList); + Mocker.GetMock().Setup(c => c.GetAllArtists()).Returns(artistList); Subject.Delete(1); diff --git a/src/NzbDrone.Core.Test/QueueTests/QueueServiceFixture.cs b/src/NzbDrone.Core.Test/QueueTests/QueueServiceFixture.cs index 81ca1e28d..b2d8121ee 100644 --- a/src/NzbDrone.Core.Test/QueueTests/QueueServiceFixture.cs +++ b/src/NzbDrone.Core.Test/QueueTests/QueueServiceFixture.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; @@ -7,7 +7,7 @@ using NzbDrone.Core.Queue; using NzbDrone.Core.Test.Framework; using FizzWare.NBuilder; using FluentAssertions; -using NzbDrone.Core.Tv; +using NzbDrone.Core.Music; using NzbDrone.Core.Parser.Model; namespace NzbDrone.Core.Test.QueueTests @@ -24,24 +24,24 @@ namespace NzbDrone.Core.Test.QueueTests .With(v => v.RemainingTime = TimeSpan.FromSeconds(10)) .Build(); - var series = Builder.CreateNew() + var series = Builder.CreateNew() .Build(); - var episodes = Builder.CreateListOfSize(3) + var episodes = Builder.CreateListOfSize(3) .All() - .With(e => e.SeriesId = series.Id) + .With(e => e.ArtistId = series.Id) .Build(); - var remoteEpisode = Builder.CreateNew() - .With(r => r.Series = series) - .With(r => r.Episodes = new List(episodes)) - .With(r => r.ParsedEpisodeInfo = new ParsedEpisodeInfo()) + var remoteEpisode = Builder.CreateNew() + .With(r => r.Artist = series) + .With(r => r.Albums = new List(episodes)) + .With(r => r.ParsedAlbumInfo = new ParsedAlbumInfo()) .Build(); _trackedDownloads = Builder.CreateListOfSize(1) .All() .With(v => v.DownloadItem = downloadItem) - .With(v => v.RemoteEpisode = remoteEpisode) + .With(v => v.RemoteAlbum = remoteEpisode) .Build() .ToList(); } diff --git a/src/NzbDrone.Core.Test/TvTests/EpisodeServiceTests/HandleEpisodeFileDeletedFixture.cs b/src/NzbDrone.Core.Test/TvTests/EpisodeServiceTests/HandleEpisodeFileDeletedFixture.cs index 4cb575007..7a39011b8 100644 --- a/src/NzbDrone.Core.Test/TvTests/EpisodeServiceTests/HandleEpisodeFileDeletedFixture.cs +++ b/src/NzbDrone.Core.Test/TvTests/EpisodeServiceTests/HandleEpisodeFileDeletedFixture.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using FizzWare.NBuilder; using Moq; @@ -53,71 +53,71 @@ namespace NzbDrone.Core.Test.TvTests.EpisodeServiceTests .Returns(_episodes); } - [Test] - public void should_set_EpisodeFileId_to_zero() - { - GivenSingleEpisodeFile(); + //[Test] + //public void should_set_EpisodeFileId_to_zero() + //{ + // GivenSingleEpisodeFile(); - Subject.Handle(new EpisodeFileDeletedEvent(_episodeFile, DeleteMediaFileReason.MissingFromDisk)); + // Subject.Handle(new EpisodeFileDeletedEvent(_episodeFile, DeleteMediaFileReason.MissingFromDisk)); - Mocker.GetMock() - .Verify(v => v.Update(It.Is(e => e.EpisodeFileId == 0)), Times.Once()); - } + // Mocker.GetMock() + // .Verify(v => v.Update(It.Is(e => e.EpisodeFileId == 0)), Times.Once()); + //} - [Test] - public void should_update_each_episode_for_file() - { - GivenMultiEpisodeFile(); + //[Test] + //public void should_update_each_episode_for_file() + //{ + // GivenMultiEpisodeFile(); - Subject.Handle(new EpisodeFileDeletedEvent(_episodeFile, DeleteMediaFileReason.MissingFromDisk)); + // Subject.Handle(new EpisodeFileDeletedEvent(_episodeFile, DeleteMediaFileReason.MissingFromDisk)); - Mocker.GetMock() - .Verify(v => v.Update(It.Is(e => e.EpisodeFileId == 0)), Times.Exactly(2)); - } + // Mocker.GetMock() + // .Verify(v => v.Update(It.Is(e => e.EpisodeFileId == 0)), Times.Exactly(2)); + //} - [Test] - public void should_set_monitored_to_false_if_autoUnmonitor_is_true_and_is_not_for_an_upgrade() - { - GivenSingleEpisodeFile(); + //[Test] + //public void should_set_monitored_to_false_if_autoUnmonitor_is_true_and_is_not_for_an_upgrade() + //{ + // GivenSingleEpisodeFile(); - Mocker.GetMock() - .SetupGet(s => s.AutoUnmonitorPreviouslyDownloadedTracks) - .Returns(true); + // Mocker.GetMock() + // .SetupGet(s => s.AutoUnmonitorPreviouslyDownloadedTracks) + // .Returns(true); - Subject.Handle(new EpisodeFileDeletedEvent(_episodeFile, DeleteMediaFileReason.MissingFromDisk)); + // Subject.Handle(new EpisodeFileDeletedEvent(_episodeFile, DeleteMediaFileReason.MissingFromDisk)); - Mocker.GetMock() - .Verify(v => v.Update(It.Is(e => e.Monitored == false)), Times.Once()); - } + // Mocker.GetMock() + // .Verify(v => v.Update(It.Is(e => e.Monitored == false)), Times.Once()); + //} - [Test] - public void should_leave_monitored_to_true_if_autoUnmonitor_is_false() - { - GivenSingleEpisodeFile(); + //[Test] + //public void should_leave_monitored_to_true_if_autoUnmonitor_is_false() + //{ + // GivenSingleEpisodeFile(); - Mocker.GetMock() - .SetupGet(s => s.AutoUnmonitorPreviouslyDownloadedTracks) - .Returns(false); + // Mocker.GetMock() + // .SetupGet(s => s.AutoUnmonitorPreviouslyDownloadedTracks) + // .Returns(false); - Subject.Handle(new EpisodeFileDeletedEvent(_episodeFile, DeleteMediaFileReason.Upgrade)); + // Subject.Handle(new EpisodeFileDeletedEvent(_episodeFile, DeleteMediaFileReason.Upgrade)); - Mocker.GetMock() - .Verify(v => v.Update(It.Is(e => e.Monitored == true)), Times.Once()); - } + // Mocker.GetMock() + // .Verify(v => v.Update(It.Is(e => e.Monitored == true)), Times.Once()); + //} - [Test] - public void should_leave_monitored_to_true_if_autoUnmonitor_is_true_and_is_for_an_upgrade() - { - GivenSingleEpisodeFile(); + //[Test] + //public void should_leave_monitored_to_true_if_autoUnmonitor_is_true_and_is_for_an_upgrade() + //{ + // GivenSingleEpisodeFile(); - Mocker.GetMock() - .SetupGet(s => s.AutoUnmonitorPreviouslyDownloadedTracks) - .Returns(true); + // Mocker.GetMock() + // .SetupGet(s => s.AutoUnmonitorPreviouslyDownloadedTracks) + // .Returns(true); - Subject.Handle(new EpisodeFileDeletedEvent(_episodeFile, DeleteMediaFileReason.Upgrade)); + // Subject.Handle(new EpisodeFileDeletedEvent(_episodeFile, DeleteMediaFileReason.Upgrade)); - Mocker.GetMock() - .Verify(v => v.Update(It.Is(e => e.Monitored == true)), Times.Once()); - } + // Mocker.GetMock() + // .Verify(v => v.Update(It.Is(e => e.Monitored == true)), Times.Once()); + //} } } diff --git a/src/NzbDrone.Core/Download/TrackedDownloads/DownloadMonitoringService.cs b/src/NzbDrone.Core/Download/TrackedDownloads/DownloadMonitoringService.cs index 5a4eb176f..345f20353 100644 --- a/src/NzbDrone.Core/Download/TrackedDownloads/DownloadMonitoringService.cs +++ b/src/NzbDrone.Core/Download/TrackedDownloads/DownloadMonitoringService.cs @@ -13,7 +13,7 @@ namespace NzbDrone.Core.Download.TrackedDownloads { public class DownloadMonitoringService : IExecute, IHandle, - IHandle, + IHandle, IHandle { @@ -170,7 +170,7 @@ namespace NzbDrone.Core.Download.TrackedDownloads _refreshDebounce.Execute(); } - public void Handle(EpisodeImportedEvent message) + public void Handle(TrackImportedEvent message) { _refreshDebounce.Execute(); } diff --git a/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownload.cs b/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownload.cs index 4436f1f04..560ed0e01 100644 --- a/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownload.cs +++ b/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownload.cs @@ -9,7 +9,6 @@ namespace NzbDrone.Core.Download.TrackedDownloads public DownloadClientItem DownloadItem { get; set; } public TrackedDownloadStage State { get; set; } public TrackedDownloadStatus Status { get; private set; } - public RemoteEpisode RemoteEpisode { get; set; } public RemoteAlbum RemoteAlbum { get; set; } public TrackedDownloadStatusMessage[] StatusMessages { get; private set; } public DownloadProtocol Protocol { get; set; } diff --git a/src/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs b/src/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs index 5b2a51097..965b5d87c 100644 --- a/src/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs +++ b/src/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs @@ -1,9 +1,8 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; using NzbDrone.Common.EnsureThat; using NzbDrone.Common.Extensions; -using NzbDrone.Core.Tv; using NzbDrone.Core.Music; namespace NzbDrone.Core.IndexerSearch.Definitions @@ -14,12 +13,9 @@ namespace NzbDrone.Core.IndexerSearch.Definitions private static readonly Regex NonWord = new Regex(@"[\W]", RegexOptions.IgnoreCase | RegexOptions.Compiled); private static readonly Regex BeginningThe = new Regex(@"^the\s", RegexOptions.IgnoreCase | RegexOptions.Compiled); - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public Series Series { get; set; } [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] public List SceneTitles { get; set; } - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public List Episodes { get; set; } + public virtual bool MonitoredEpisodesOnly { get; set; } public virtual bool UserInvokedSearch { get; set; } @@ -45,4 +41,4 @@ namespace NzbDrone.Core.IndexerSearch.Definitions return cleanTitle.Trim('+', ' '); } } -} \ No newline at end of file +} diff --git a/src/NzbDrone.Core/MediaFiles/Events/EpisodeDownloadedEvent.cs b/src/NzbDrone.Core/MediaFiles/Events/EpisodeDownloadedEvent.cs deleted file mode 100644 index af22b63fb..000000000 --- a/src/NzbDrone.Core/MediaFiles/Events/EpisodeDownloadedEvent.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Collections.Generic; -using NzbDrone.Common.Messaging; -using NzbDrone.Core.Parser.Model; - -namespace NzbDrone.Core.MediaFiles.Events -{ - public class EpisodeDownloadedEvent : IEvent - { - public LocalEpisode Episode { get; private set; } - public EpisodeFile EpisodeFile { get; private set; } - public List OldFiles { get; private set; } - - public EpisodeDownloadedEvent(LocalEpisode episode, EpisodeFile episodeFile, List oldFiles) - { - Episode = episode; - EpisodeFile = episodeFile; - OldFiles = oldFiles; - } - } -} \ No newline at end of file diff --git a/src/NzbDrone.Core/MediaFiles/Events/EpisodeFileAddedEvent.cs b/src/NzbDrone.Core/MediaFiles/Events/EpisodeFileAddedEvent.cs deleted file mode 100644 index 83ea2a908..000000000 --- a/src/NzbDrone.Core/MediaFiles/Events/EpisodeFileAddedEvent.cs +++ /dev/null @@ -1,14 +0,0 @@ -using NzbDrone.Common.Messaging; - -namespace NzbDrone.Core.MediaFiles.Events -{ - public class EpisodeFileAddedEvent : IEvent - { - public EpisodeFile EpisodeFile { get; private set; } - - public EpisodeFileAddedEvent(EpisodeFile episodeFile) - { - EpisodeFile = episodeFile; - } - } -} \ No newline at end of file diff --git a/src/NzbDrone.Core/MediaFiles/Events/EpisodeFileDeletedEvent.cs b/src/NzbDrone.Core/MediaFiles/Events/EpisodeFileDeletedEvent.cs deleted file mode 100644 index 2cbc177a2..000000000 --- a/src/NzbDrone.Core/MediaFiles/Events/EpisodeFileDeletedEvent.cs +++ /dev/null @@ -1,16 +0,0 @@ -using NzbDrone.Common.Messaging; - -namespace NzbDrone.Core.MediaFiles.Events -{ - public class EpisodeFileDeletedEvent : IEvent - { - public EpisodeFile EpisodeFile { get; private set; } - public DeleteMediaFileReason Reason { get; private set; } - - public EpisodeFileDeletedEvent(EpisodeFile episodeFile, DeleteMediaFileReason reason) - { - EpisodeFile = episodeFile; - Reason = reason; - } - } -} \ No newline at end of file diff --git a/src/NzbDrone.Core/MediaFiles/Events/EpisodeFolderCreatedEvent.cs b/src/NzbDrone.Core/MediaFiles/Events/EpisodeFolderCreatedEvent.cs deleted file mode 100644 index 126b21222..000000000 --- a/src/NzbDrone.Core/MediaFiles/Events/EpisodeFolderCreatedEvent.cs +++ /dev/null @@ -1,20 +0,0 @@ -using NzbDrone.Common.Messaging; -using NzbDrone.Core.Tv; - -namespace NzbDrone.Core.MediaFiles.Events -{ - public class EpisodeFolderCreatedEvent : IEvent - { - public Series Series { get; private set; } - public EpisodeFile EpisodeFile { get; private set; } - public string SeriesFolder { get; set; } - public string SeasonFolder { get; set; } - public string EpisodeFolder { get; set; } - - public EpisodeFolderCreatedEvent(Series series, EpisodeFile episodeFile) - { - Series = series; - EpisodeFile = episodeFile; - } - } -} diff --git a/src/NzbDrone.Core/MediaFiles/Events/EpisodeImportedEvent.cs b/src/NzbDrone.Core/MediaFiles/Events/EpisodeImportedEvent.cs deleted file mode 100644 index 21dd8da6d..000000000 --- a/src/NzbDrone.Core/MediaFiles/Events/EpisodeImportedEvent.cs +++ /dev/null @@ -1,30 +0,0 @@ -using NzbDrone.Common.Messaging; -using NzbDrone.Core.Parser.Model; - -namespace NzbDrone.Core.MediaFiles.Events -{ - public class EpisodeImportedEvent : IEvent - { - public LocalEpisode EpisodeInfo { get; private set; } - public EpisodeFile ImportedEpisode { get; private set; } - public bool NewDownload { get; private set; } - public string DownloadClient { get; private set; } - public string DownloadId { get; private set; } - - public EpisodeImportedEvent(LocalEpisode episodeInfo, EpisodeFile importedEpisode, bool newDownload) - { - EpisodeInfo = episodeInfo; - ImportedEpisode = importedEpisode; - NewDownload = newDownload; - } - - public EpisodeImportedEvent(LocalEpisode episodeInfo, EpisodeFile importedEpisode, bool newDownload, string downloadClient, string downloadId) - { - EpisodeInfo = episodeInfo; - ImportedEpisode = importedEpisode; - NewDownload = newDownload; - DownloadClient = downloadClient; - DownloadId = downloadId; - } - } -} diff --git a/src/NzbDrone.Core/MediaFiles/Events/SeriesRenamedEvent.cs b/src/NzbDrone.Core/MediaFiles/Events/SeriesRenamedEvent.cs deleted file mode 100644 index 8cfe96b89..000000000 --- a/src/NzbDrone.Core/MediaFiles/Events/SeriesRenamedEvent.cs +++ /dev/null @@ -1,15 +0,0 @@ -using NzbDrone.Common.Messaging; -using NzbDrone.Core.Tv; - -namespace NzbDrone.Core.MediaFiles.Events -{ - public class SeriesRenamedEvent : IEvent - { - public Series Series { get; private set; } - - public SeriesRenamedEvent(Series series) - { - Series = series; - } - } -} \ No newline at end of file diff --git a/src/NzbDrone.Core/MediaFiles/Events/SeriesScanSkippedEvent.cs b/src/NzbDrone.Core/MediaFiles/Events/SeriesScanSkippedEvent.cs deleted file mode 100644 index 765207bd5..000000000 --- a/src/NzbDrone.Core/MediaFiles/Events/SeriesScanSkippedEvent.cs +++ /dev/null @@ -1,23 +0,0 @@ -using NzbDrone.Common.Messaging; -using NzbDrone.Core.Tv; - -namespace NzbDrone.Core.MediaFiles.Events -{ - public class SeriesScanSkippedEvent : IEvent - { - public Series Series { get; private set; } - public SeriesScanSkippedReason Reason { get; set; } - - public SeriesScanSkippedEvent(Series series, SeriesScanSkippedReason reason) - { - Series = series; - Reason = reason; - } - } - - public enum SeriesScanSkippedReason - { - RootFolderDoesNotExist, - RootFolderIsEmpty - } -} diff --git a/src/NzbDrone.Core/MediaFiles/Events/SeriesScannedEvent.cs b/src/NzbDrone.Core/MediaFiles/Events/SeriesScannedEvent.cs deleted file mode 100644 index f82de5214..000000000 --- a/src/NzbDrone.Core/MediaFiles/Events/SeriesScannedEvent.cs +++ /dev/null @@ -1,15 +0,0 @@ -using NzbDrone.Common.Messaging; -using NzbDrone.Core.Tv; - -namespace NzbDrone.Core.MediaFiles.Events -{ - public class SeriesScannedEvent : IEvent - { - public Series Series { get; private set; } - - public SeriesScannedEvent(Series series) - { - Series = series; - } - } -} \ No newline at end of file diff --git a/src/NzbDrone.Core/Music/Album.cs b/src/NzbDrone.Core/Music/Album.cs index 3a35fb015..85b5f4d04 100644 --- a/src/NzbDrone.Core/Music/Album.cs +++ b/src/NzbDrone.Core/Music/Album.cs @@ -1,6 +1,5 @@ using NzbDrone.Common.Extensions; using NzbDrone.Core.Datastore; -using NzbDrone.Core.Tv; using System; using System.Collections.Generic; using System.Linq; @@ -39,7 +38,7 @@ namespace NzbDrone.Core.Music public String AlbumType { get; set; } // TODO: Turn this into a type similar to Series Type in TV //public string ArtworkUrl { get; set; } //public string Explicitness { get; set; } - public AddSeriesOptions AddOptions { get; set; } + public AddArtistOptions AddOptions { get; set; } public Artist Artist { get; set; } public Ratings Ratings { get; set; } diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj index a996e2f07..43a117c1c 100644 --- a/src/NzbDrone.Core/NzbDrone.Core.csproj +++ b/src/NzbDrone.Core/NzbDrone.Core.csproj @@ -742,7 +742,6 @@ - @@ -778,14 +777,7 @@ - - - - - - - @@ -1180,7 +1172,6 @@ - diff --git a/src/NzbDrone.Core/Parser/ParsingService.cs b/src/NzbDrone.Core/Parser/ParsingService.cs index b6c5c8045..a89a7c3a1 100644 --- a/src/NzbDrone.Core/Parser/ParsingService.cs +++ b/src/NzbDrone.Core/Parser/ParsingService.cs @@ -7,7 +7,6 @@ using NzbDrone.Core.DataAugmentation.Scene; using NzbDrone.Core.IndexerSearch.Definitions; using NzbDrone.Core.MediaFiles; using NzbDrone.Core.Parser.Model; -using NzbDrone.Core.Tv; using NzbDrone.Core.Music; using System; @@ -15,18 +14,11 @@ namespace NzbDrone.Core.Parser { public interface IParsingService { - LocalEpisode GetLocalEpisode(string filename, Series series); - LocalEpisode GetLocalEpisode(string filename, Series series, ParsedEpisodeInfo folderInfo, bool sceneSource); - Series GetSeries(string title); Artist GetArtist(string title); Artist GetArtistFromTag(string file); - RemoteEpisode Map(ParsedEpisodeInfo parsedEpisodeInfo, int tvdbId, int tvRageId, SearchCriteriaBase searchCriteria = null); - RemoteEpisode Map(ParsedEpisodeInfo parsedEpisodeInfo, int seriesId, IEnumerable episodeIds); RemoteAlbum Map(ParsedAlbumInfo parsedAlbumInfo, SearchCriteriaBase searchCriteria = null); RemoteAlbum Map(ParsedAlbumInfo parsedAlbumInfo, int artistId, IEnumerable albumIds); - List GetEpisodes(ParsedEpisodeInfo parsedEpisodeInfo, Series series, bool sceneSource, SearchCriteriaBase searchCriteria = null); List GetAlbums(ParsedAlbumInfo parsedAlbumInfo, Artist artist, SearchCriteriaBase searchCriteria = null); - ParsedEpisodeInfo ParseSpecialEpisodeTitle(string title, int tvdbId, int tvRageId, SearchCriteriaBase searchCriteria = null); // Music stuff here LocalTrack GetLocalTrack(string filename, Artist artist); @@ -36,23 +28,17 @@ namespace NzbDrone.Core.Parser public class ParsingService : IParsingService { - private readonly IEpisodeService _episodeService; - private readonly ISeriesService _seriesService; private readonly IArtistService _artistService; private readonly IAlbumService _albumService; private readonly ITrackService _trackService; private readonly Logger _logger; - public ParsingService(IEpisodeService episodeService, - ISeriesService seriesService, - ITrackService trackService, + public ParsingService(ITrackService trackService, IArtistService artistService, IAlbumService albumService, // ISceneMappingService sceneMappingService, Logger logger) { - _episodeService = episodeService; - _seriesService = seriesService; _albumService = albumService; _artistService = artistService; // _sceneMappingService = sceneMappingService; @@ -60,84 +46,6 @@ namespace NzbDrone.Core.Parser _logger = logger; } - [System.Obsolete("Used for sonarr, not lidarr")] - public LocalEpisode GetLocalEpisode(string filename, Series series) - { - return GetLocalEpisode(filename, series, null, false); - } - - [System.Obsolete("Used for sonarr, not lidarr")] - public LocalEpisode GetLocalEpisode(string filename, Series series, ParsedEpisodeInfo folderInfo, bool sceneSource) - { - ParsedEpisodeInfo parsedEpisodeInfo; - - if (folderInfo != null) - { - parsedEpisodeInfo = folderInfo.JsonClone(); - parsedEpisodeInfo.Quality = QualityParser.ParseQuality(Path.GetFileName(filename)); - } - - else - { - parsedEpisodeInfo = Parser.ParsePath(filename); - } - - if (parsedEpisodeInfo == null || parsedEpisodeInfo.IsPossibleSpecialEpisode) - { - var title = Path.GetFileNameWithoutExtension(filename); - var specialEpisodeInfo = ParseSpecialEpisodeTitle(title, series); - - if (specialEpisodeInfo != null) - { - parsedEpisodeInfo = specialEpisodeInfo; - } - } - - if (parsedEpisodeInfo == null) - { - if (MediaFileExtensions.Extensions.Contains(Path.GetExtension(filename))) - { - _logger.Warn("Unable to parse episode info from path {0}", filename); - } - - return null; - } - - var episodes = GetEpisodes(parsedEpisodeInfo, series, sceneSource); - - return new LocalEpisode - { - Series = series, - Quality = parsedEpisodeInfo.Quality, - Language = parsedEpisodeInfo.Language, - Episodes = episodes, - Path = filename, - ParsedEpisodeInfo = parsedEpisodeInfo, - ExistingFile = series.Path.IsParentPath(filename) - }; - } - - [System.Obsolete("Used for sonarr, not lidarr")] - public Series GetSeries(string title) - { - var parsedEpisodeInfo = Parser.ParseTitle(title); - - if (parsedEpisodeInfo == null) - { - return _seriesService.FindByTitle(title); - } - - var series = _seriesService.FindByTitle(parsedEpisodeInfo.SeriesTitle); - - if (series == null) - { - series = _seriesService.FindByTitle(parsedEpisodeInfo.SeriesTitleInfo.TitleWithoutYear, - parsedEpisodeInfo.SeriesTitleInfo.Year); - } - - return series; - } - public Artist GetArtist(string title) { var parsedAlbumInfo = Parser.ParseAlbumTitle(title); @@ -176,27 +84,6 @@ namespace NzbDrone.Core.Parser } - [System.Obsolete("Used for sonarr, not lidarr")] - public RemoteEpisode Map(ParsedEpisodeInfo parsedEpisodeInfo, int tvdbId, int tvRageId, SearchCriteriaBase searchCriteria = null) - { - var remoteEpisode = new RemoteEpisode - { - ParsedEpisodeInfo = parsedEpisodeInfo, - }; - - var series = GetSeries(parsedEpisodeInfo, tvdbId, tvRageId, searchCriteria); - - if (series == null) - { - return remoteEpisode; - } - - remoteEpisode.Series = series; - remoteEpisode.Episodes = GetEpisodes(parsedEpisodeInfo, series, true, searchCriteria); - - return remoteEpisode; - } - public RemoteAlbum Map(ParsedAlbumInfo parsedAlbumInfo, SearchCriteriaBase searchCriteria = null) { var remoteAlbum = new RemoteAlbum @@ -254,17 +141,6 @@ namespace NzbDrone.Core.Parser } - [System.Obsolete("Used for sonarr, not lidarr")] - public RemoteEpisode Map(ParsedEpisodeInfo parsedEpisodeInfo, int seriesId, IEnumerable episodeIds) - { - return new RemoteEpisode - { - ParsedEpisodeInfo = parsedEpisodeInfo, - Series = _seriesService.GetSeries(seriesId), - Episodes = _episodeService.GetEpisodes(episodeIds) - }; - } - public RemoteAlbum Map(ParsedAlbumInfo parsedAlbumInfo, int artistId, IEnumerable albumIds) { return new RemoteAlbum @@ -275,113 +151,6 @@ namespace NzbDrone.Core.Parser }; } - [System.Obsolete("Used for sonarr, not lidarr")] - public List GetEpisodes(ParsedEpisodeInfo parsedEpisodeInfo, Series series, bool sceneSource, SearchCriteriaBase searchCriteria = null) - { - if (parsedEpisodeInfo.FullSeason) - { - return _episodeService.GetEpisodesBySeason(series.Id, parsedEpisodeInfo.SeasonNumber); - } - - if (parsedEpisodeInfo.IsDaily) - { - if (series.SeriesType == SeriesTypes.Standard) - { - _logger.Warn("Found daily-style episode for non-daily series: {0}.", series); - return new List(); - } - - var episodeInfo = GetDailyEpisode(series, parsedEpisodeInfo.AirDate, searchCriteria); - - if (episodeInfo != null) - { - return new List { episodeInfo }; - } - - return new List(); - } - - if (parsedEpisodeInfo.IsAbsoluteNumbering) - { - return GetAnimeEpisodes(series, parsedEpisodeInfo, sceneSource); - } - - return GetStandardEpisodes(series, parsedEpisodeInfo, sceneSource, searchCriteria); - } - - [System.Obsolete("Used for sonarr, not lidarr")] - public ParsedEpisodeInfo ParseSpecialEpisodeTitle(string title, int tvdbId, int tvRageId, SearchCriteriaBase searchCriteria = null) - { - if (searchCriteria != null) - { - if (tvdbId == 0) - tvdbId = 0; // _sceneMappingService.FindTvdbId(title) ?? 0; - - if (tvdbId != 0 && tvdbId == searchCriteria.Series.TvdbId) - { - return ParseSpecialEpisodeTitle(title, searchCriteria.Series); - } - - if (tvRageId != 0 && tvRageId == searchCriteria.Series.TvRageId) - { - return ParseSpecialEpisodeTitle(title, searchCriteria.Series); - } - } - - var series = GetSeries(title); - - if (series == null) - { - series = _seriesService.FindByTitleInexact(title); - } - - if (series == null && tvdbId > 0) - { - series = _seriesService.FindByTvdbId(tvdbId); - } - - if (series == null && tvRageId > 0) - { - series = _seriesService.FindByTvRageId(tvRageId); - } - - if (series == null) - { - _logger.Debug("No matching series {0}", title); - return null; - } - - return ParseSpecialEpisodeTitle(title, series); - } - - [System.Obsolete("Used for sonarr, not lidarr")] - private ParsedEpisodeInfo ParseSpecialEpisodeTitle(string title, Series series) - { - // find special episode in series season 0 - var episode = _episodeService.FindEpisodeByTitle(series.Id, 0, title); - - if (episode != null) - { - // create parsed info from tv episode - var info = new ParsedEpisodeInfo(); - info.SeriesTitle = series.Title; - info.SeriesTitleInfo = new SeriesTitleInfo(); - info.SeriesTitleInfo.Title = info.SeriesTitle; - info.SeasonNumber = episode.SeasonNumber; - info.EpisodeNumbers = new int[1] { episode.EpisodeNumber }; - info.FullSeason = false; - info.Quality = QualityParser.ParseQuality(title); - info.ReleaseGroup = Parser.ParseReleaseGroup(title); - info.Language = LanguageParser.ParseLanguage(title); - info.Special = true; - - _logger.Debug("Found special episode {0} for title '{1}'", info, title); - return info; - } - - return null; - } - private Artist GetArtist(ParsedAlbumInfo parsedAlbumInfo, SearchCriteriaBase searchCriteria) { Artist artist = null; @@ -405,279 +174,6 @@ namespace NzbDrone.Core.Parser return artist; } - [System.Obsolete("Used for sonarr, not lidarr")] - private Series GetSeries(ParsedEpisodeInfo parsedEpisodeInfo, int tvdbId, int tvRageId, SearchCriteriaBase searchCriteria) - { - Series series = null; - - //var sceneMappingTvdbId = _sceneMappingService.FindTvdbId(parsedEpisodeInfo.SeriesTitle); - //if (sceneMappingTvdbId.HasValue) - //{ - // if (searchCriteria != null && searchCriteria.Series.TvdbId == sceneMappingTvdbId.Value) - // { - // return searchCriteria.Series; - // } - - // series = _seriesService.FindByTvdbId(sceneMappingTvdbId.Value); - - // if (series == null) - // { - // _logger.Debug("No matching series {0}", parsedEpisodeInfo.SeriesTitle); - // return null; - // } - - // return series; - //} - - if (searchCriteria != null) - { - if (searchCriteria.Series.CleanTitle == parsedEpisodeInfo.SeriesTitle.CleanSeriesTitle()) - { - return searchCriteria.Series; - } - - if (tvdbId > 0 && tvdbId == searchCriteria.Series.TvdbId) - { - //TODO: If series is found by TvdbId, we should report it as a scene naming exception, since it will fail to import - return searchCriteria.Series; - } - - if (tvRageId > 0 && tvRageId == searchCriteria.Series.TvRageId) - { - //TODO: If series is found by TvRageId, we should report it as a scene naming exception, since it will fail to import - return searchCriteria.Series; - } - } - - series = _seriesService.FindByTitle(parsedEpisodeInfo.SeriesTitle); - - if (series == null && parsedEpisodeInfo.SeriesTitleInfo.Year > 0) - { - series = _seriesService.FindByTitle(parsedEpisodeInfo.SeriesTitleInfo.TitleWithoutYear, parsedEpisodeInfo.SeriesTitleInfo.Year); - } - - if (series == null && tvdbId > 0) - { - //TODO: If series is found by TvdbId, we should report it as a scene naming exception, since it will fail to import - series = _seriesService.FindByTvdbId(tvdbId); - } - - if (series == null && tvRageId > 0) - { - //TODO: If series is found by TvRageId, we should report it as a scene naming exception, since it will fail to import - series = _seriesService.FindByTvRageId(tvRageId); - } - - if (series == null) - { - _logger.Debug("No matching series {0}", parsedEpisodeInfo.SeriesTitle); - return null; - } - - return series; - } - - [System.Obsolete("Used for sonarr, not lidarr")] - private Episode GetDailyEpisode(Series series, string airDate, SearchCriteriaBase searchCriteria) - { - Episode episodeInfo = null; - - if (searchCriteria != null) - { - episodeInfo = searchCriteria.Episodes.SingleOrDefault( - e => e.AirDate == airDate); - } - - if (episodeInfo == null) - { - episodeInfo = _episodeService.FindEpisode(series.Id, airDate); - } - - return episodeInfo; - } - - [System.Obsolete("Used for sonarr, not lidarr")] - private List GetAnimeEpisodes(Series series, ParsedEpisodeInfo parsedEpisodeInfo, bool sceneSource) - { - var result = new List(); - -// var sceneSeasonNumber = _sceneMappingService.GetSceneSeasonNumber(parsedEpisodeInfo.SeriesTitle); - - foreach (var absoluteEpisodeNumber in parsedEpisodeInfo.AbsoluteEpisodeNumbers) - { - Episode episode = null; - - if (parsedEpisodeInfo.Special) - { - episode = _episodeService.FindEpisode(series.Id, 0, absoluteEpisodeNumber); - } - - //else if (sceneSource) - //{ - // // Is there a reason why we excluded season 1 from this handling before? - // // Might have something to do with the scene name to season number check - // // If this needs to be reverted tests will need to be added - // if (sceneSeasonNumber.HasValue) - // { - // var episodes = _episodeService.FindEpisodesBySceneNumbering(series.Id, sceneSeasonNumber.Value, absoluteEpisodeNumber); - - // if (episodes.Count == 1) - // { - // episode = episodes.First(); - // } - - // if (episode == null) - // { - // episode = _episodeService.FindEpisode(series.Id, sceneSeasonNumber.Value, absoluteEpisodeNumber); - // } - // } - - // else - // { - // episode = _episodeService.FindEpisodeBySceneNumbering(series.Id, absoluteEpisodeNumber); - // } - //} - - if (episode == null) - { - episode = _episodeService.FindEpisode(series.Id, absoluteEpisodeNumber); - } - - if (episode != null) - { - _logger.Debug("Using absolute episode number {0} for: {1} - TVDB: {2}x{3:00}", - absoluteEpisodeNumber, - series.Title, - episode.SeasonNumber, - episode.EpisodeNumber); - - result.Add(episode); - } - } - - return result; - } - - //private List GetStandardTracks(Artist artist, ParsedTrackInfo parsedTrackInfo, SearchCriteriaBase searchCriteria) - //{ - // var result = new List(); - - // if (parsedTrackInfo.TrackNumbers == null) - // { - // return result; - // } - - // foreach (var trackNumber in parsedTrackInfo.TrackNumbers) - // { - // Track trackInfo = null; - - // if (searchCriteria != null) - // { - // trackInfo = searchCriteria.Tracks.SingleOrDefault(e => e.TrackNumber == trackNumber); //e => e.SeasonNumber == seasonNumber && e.TrackNumber == trackNumber - // } - - // if (trackInfo == null) - // { - // // TODO: [ParsingService]: FindTrack by artistID and trackNumber (or albumID and trackNumber if we change db schema to album as base) - // _logger.Debug("TrackInfo is null, we will not add as FindTrack(artistId, trackNumber) is not implemented"); - // //trackInfo = _trackService.FindTrack(artist.SpotifyId, trackNumber); - // } - - // if (trackInfo != null) - // { - // result.Add(trackInfo); - // } - - // else - // { - // _logger.Debug("Unable to find {0}", parsedTrackInfo); - // } - // } - - - - // return result; - //} - - [System.Obsolete("Used for sonarr, not lidarr")] - private List GetStandardEpisodes(Series series, ParsedEpisodeInfo parsedEpisodeInfo, bool sceneSource, SearchCriteriaBase searchCriteria) - { - var result = new List(); - var seasonNumber = parsedEpisodeInfo.SeasonNumber; - - //if (sceneSource) - //{ - // var sceneMapping = _sceneMappingService.FindSceneMapping(parsedEpisodeInfo.SeriesTitle); - - // if (sceneMapping != null && sceneMapping.SeasonNumber.HasValue && sceneMapping.SeasonNumber.Value >= 0 && - // sceneMapping.SceneSeasonNumber == seasonNumber) - // { - // seasonNumber = sceneMapping.SeasonNumber.Value; - // } - //} - - if (parsedEpisodeInfo.EpisodeNumbers == null) - { - return new List(); - } - - foreach (var episodeNumber in parsedEpisodeInfo.EpisodeNumbers) - { - if (series.UseSceneNumbering && sceneSource) - { - List episodes = new List(); - - if (searchCriteria != null) - { - episodes = searchCriteria.Episodes.Where(e => e.SceneSeasonNumber == parsedEpisodeInfo.SeasonNumber && - e.SceneEpisodeNumber == episodeNumber).ToList(); - } - - if (!episodes.Any()) - { - episodes = _episodeService.FindEpisodesBySceneNumbering(series.Id, seasonNumber, episodeNumber); - } - - if (episodes != null && episodes.Any()) - { - _logger.Debug("Using Scene to TVDB Mapping for: {0} - Scene: {1}x{2:00} - TVDB: {3}", - series.Title, - episodes.First().SceneSeasonNumber, - episodes.First().SceneEpisodeNumber, - string.Join(", ", episodes.Select(e => string.Format("{0}x{1:00}", e.SeasonNumber, e.EpisodeNumber)))); - - result.AddRange(episodes); - continue; - } - } - - Episode episodeInfo = null; - - if (searchCriteria != null) - { - episodeInfo = searchCriteria.Episodes.SingleOrDefault(e => e.SeasonNumber == seasonNumber && e.EpisodeNumber == episodeNumber); - } - - if (episodeInfo == null) - { - episodeInfo = _episodeService.FindEpisode(series.Id, seasonNumber, episodeNumber); - } - - if (episodeInfo != null) - { - result.Add(episodeInfo); - } - - else - { - _logger.Debug("Unable to find {0}", parsedEpisodeInfo); - } - } - - return result; - } - - public LocalTrack GetLocalTrack(string filename, Artist artist) { return GetLocalTrack(filename, artist, null); diff --git a/src/NzbDrone.Core/Tv/EpisodeService.cs b/src/NzbDrone.Core/Tv/EpisodeService.cs index 800cf3e0f..04e3a0375 100644 --- a/src/NzbDrone.Core/Tv/EpisodeService.cs +++ b/src/NzbDrone.Core/Tv/EpisodeService.cs @@ -39,8 +39,8 @@ namespace NzbDrone.Core.Tv } public class EpisodeService : IEpisodeService, - IHandle, - IHandle, + //IHandle, + //IHandle, IHandleAsync { private readonly IEpisodeRepository _episodeRepository; @@ -203,29 +203,29 @@ namespace NzbDrone.Core.Tv _episodeRepository.DeleteMany(episodes); } - public void Handle(EpisodeFileDeletedEvent message) - { - foreach (var episode in GetEpisodesByFileId(message.EpisodeFile.Id)) - { - _logger.Debug("Detaching episode {0} from file.", episode.Id); - episode.EpisodeFileId = 0; + //public void Handle(EpisodeFileDeletedEvent message) + //{ + // foreach (var episode in GetEpisodesByFileId(message.EpisodeFile.Id)) + // { + // _logger.Debug("Detaching episode {0} from file.", episode.Id); + // episode.EpisodeFileId = 0; - if (message.Reason != DeleteMediaFileReason.Upgrade && _configService.AutoUnmonitorPreviouslyDownloadedTracks) - { - episode.Monitored = false; - } + // if (message.Reason != DeleteMediaFileReason.Upgrade && _configService.AutoUnmonitorPreviouslyDownloadedTracks) + // { + // episode.Monitored = false; + // } - UpdateEpisode(episode); - } - } + // UpdateEpisode(episode); + // } + //} - public void Handle(EpisodeFileAddedEvent message) - { - foreach (var episode in message.EpisodeFile.Episodes.Value) - { - _episodeRepository.SetFileId(episode.Id, message.EpisodeFile.Id); - _logger.Debug("Linking [{0}] > [{1}]", message.EpisodeFile.RelativePath, episode); - } - } + //public void Handle(EpisodeFileAddedEvent message) + //{ + // foreach (var episode in message.EpisodeFile.Episodes.Value) + // { + // _episodeRepository.SetFileId(episode.Id, message.EpisodeFile.Id); + // _logger.Debug("Linking [{0}] > [{1}]", message.EpisodeFile.RelativePath, episode); + // } + //} } } diff --git a/src/NzbDrone.Core/Tv/SeriesScannedHandler.cs b/src/NzbDrone.Core/Tv/SeriesScannedHandler.cs deleted file mode 100644 index 691c91c7e..000000000 --- a/src/NzbDrone.Core/Tv/SeriesScannedHandler.cs +++ /dev/null @@ -1,62 +0,0 @@ -using NLog; -using NzbDrone.Core.IndexerSearch; -using NzbDrone.Core.MediaFiles.Events; -using NzbDrone.Core.Messaging.Commands; -using NzbDrone.Core.Messaging.Events; - -namespace NzbDrone.Core.Tv -{ - public class SeriesScannedHandler : IHandle, - IHandle - { - private readonly IEpisodeMonitoredService _episodeMonitoredService; - private readonly ISeriesService _seriesService; - private readonly IManageCommandQueue _commandQueueManager; - private readonly IEpisodeAddedService _episodeAddedService; - - private readonly Logger _logger; - - public SeriesScannedHandler(IEpisodeMonitoredService episodeMonitoredService, - ISeriesService seriesService, - IManageCommandQueue commandQueueManager, - IEpisodeAddedService episodeAddedService, - Logger logger) - { - _episodeMonitoredService = episodeMonitoredService; - _seriesService = seriesService; - _commandQueueManager = commandQueueManager; - _episodeAddedService = episodeAddedService; - _logger = logger; - } - - private void HandleScanEvents(Series series) - { - if (series.AddOptions == null) - { - _episodeAddedService.SearchForRecentlyAdded(series.Id); - return; - } - - _logger.Info("[{0}] was recently added, performing post-add actions", series.Title); - _episodeMonitoredService.SetEpisodeMonitoredStatus(series, series.AddOptions); - - if (series.AddOptions.SearchForMissingEpisodes) - { - _commandQueueManager.Push(new MissingAlbumSearchCommand(series.Id)); - } - - series.AddOptions = null; - _seriesService.RemoveAddOptions(series); - } - - public void Handle(SeriesScannedEvent message) - { - HandleScanEvents(message.Series); - } - - public void Handle(SeriesScanSkippedEvent message) - { - HandleScanEvents(message.Series); - } - } -}