From 92f06cf70f9ee716638e9728614ff51ddc4542e1 Mon Sep 17 00:00:00 2001 From: Qstick Date: Sat, 26 Aug 2017 21:07:37 -0400 Subject: [PATCH] Add TrackFiles Housekeeper (#66) Add TrackFiles Housekeeper --- ...cs => CleanupOrphanedTrackFilesFixture.cs} | 26 +++++++++---------- .../NzbDrone.Core.Test.csproj | 2 +- .../CleanupOrphanedEpisodeFiles.cs | 26 ------------------- .../Housekeepers/CleanupOrphanedTrackFiles.cs | 26 +++++++++++++++++++ src/NzbDrone.Core/NzbDrone.Core.csproj | 2 +- 5 files changed, 41 insertions(+), 41 deletions(-) rename src/NzbDrone.Core.Test/Housekeeping/Housekeepers/{CleanupOrphanedEpisodeFilesFixture.cs => CleanupOrphanedTrackFilesFixture.cs} (55%) delete mode 100644 src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedEpisodeFiles.cs create mode 100644 src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedTrackFiles.cs diff --git a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedEpisodeFilesFixture.cs b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedTrackFilesFixture.cs similarity index 55% rename from src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedEpisodeFilesFixture.cs rename to src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedTrackFilesFixture.cs index b09def40c..95c824745 100644 --- a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedEpisodeFilesFixture.cs +++ b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedTrackFilesFixture.cs @@ -1,49 +1,49 @@ -using System.Linq; +using System.Linq; using FizzWare.NBuilder; using FluentAssertions; using NUnit.Framework; using NzbDrone.Core.Housekeeping.Housekeepers; using NzbDrone.Core.MediaFiles; using NzbDrone.Core.Test.Framework; -using NzbDrone.Core.Tv; +using NzbDrone.Core.Music; using NzbDrone.Core.Qualities; namespace NzbDrone.Core.Test.Housekeeping.Housekeepers { [TestFixture] - public class CleanupOrphanedEpisodeFilesFixture : DbTest + public class CleanupOrphanedTrackFilesFixture : DbTest { [Test] - public void should_delete_orphaned_episode_files() + public void should_delete_orphaned_track_files() { - var episodeFile = Builder.CreateNew() + var trackFile = Builder.CreateNew() .With(h => h.Quality = new QualityModel()) .BuildNew(); - Db.Insert(episodeFile); + Db.Insert(trackFile); Subject.Clean(); AllStoredModels.Should().BeEmpty(); } [Test] - public void should_not_delete_unorphaned_episode_files() + public void should_not_delete_unorphaned_track_files() { - var episodeFiles = Builder.CreateListOfSize(2) + var trackFiles = Builder.CreateListOfSize(2) .All() .With(h => h.Quality = new QualityModel()) .BuildListOfNew(); - Db.InsertMany(episodeFiles); + Db.InsertMany(trackFiles); - var episode = Builder.CreateNew() - .With(e => e.EpisodeFileId = episodeFiles.First().Id) + var track = Builder.CreateNew() + .With(e => e.TrackFileId = trackFiles.First().Id) .BuildNew(); - Db.Insert(episode); + Db.Insert(track); Subject.Clean(); AllStoredModels.Should().HaveCount(1); - Db.All().Should().Contain(e => e.EpisodeFileId == AllStoredModels.First().Id); + Db.All().Should().Contain(e => e.TrackFileId == AllStoredModels.First().Id); } } } diff --git a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj index 9f10fa6d5..907074a0b 100644 --- a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj +++ b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj @@ -236,7 +236,7 @@ - + diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedEpisodeFiles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedEpisodeFiles.cs deleted file mode 100644 index 79f186a37..000000000 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedEpisodeFiles.cs +++ /dev/null @@ -1,26 +0,0 @@ -using NzbDrone.Core.Datastore; - -namespace NzbDrone.Core.Housekeeping.Housekeepers -{ - public class CleanupOrphanedEpisodeFiles : IHousekeepingTask - { - private readonly IMainDatabase _database; - - public CleanupOrphanedEpisodeFiles(IMainDatabase database) - { - _database = database; - } - - public void Clean() - { - var mapper = _database.GetDataMapper(); - - mapper.ExecuteNonQuery(@"DELETE FROM EpisodeFiles - WHERE Id IN ( - SELECT EpisodeFiles.Id FROM EpisodeFiles - LEFT OUTER JOIN Episodes - ON EpisodeFiles.Id = Episodes.EpisodeFileId - WHERE Episodes.Id IS NULL)"); - } - } -} diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedTrackFiles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedTrackFiles.cs new file mode 100644 index 000000000..f9cc9594e --- /dev/null +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedTrackFiles.cs @@ -0,0 +1,26 @@ +using NzbDrone.Core.Datastore; + +namespace NzbDrone.Core.Housekeeping.Housekeepers +{ + public class CleanupOrphanedTrackFiles : IHousekeepingTask + { + private readonly IMainDatabase _database; + + public CleanupOrphanedTrackFiles(IMainDatabase database) + { + _database = database; + } + + public void Clean() + { + var mapper = _database.GetDataMapper(); + + mapper.ExecuteNonQuery(@"DELETE FROM TrackFiles + WHERE Id IN ( + SELECT TrackFiles.Id FROM TrackFiles + LEFT OUTER JOIN Tracks + ON TrackFiles.Id = Tracks.TrackFileId + WHERE Tracks.Id IS NULL)"); + } + } +} diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj index c15be3261..8c6737b95 100644 --- a/src/NzbDrone.Core/NzbDrone.Core.csproj +++ b/src/NzbDrone.Core/NzbDrone.Core.csproj @@ -589,7 +589,7 @@ - +