From 41492efd2e49c38b9f5966af7869452dec80cdcb Mon Sep 17 00:00:00 2001 From: Bogdan Date: Wed, 21 Jun 2023 06:25:44 +0300 Subject: [PATCH] Convert to 'using' declaration in Housekeeping Tasks Closes #8723 --- .../CleanupAbsolutePathMetadataFiles.cs | 52 +++++++++---------- .../CleanupAdditionalNamingSpecs.cs | 12 ++--- .../Housekeepers/CleanupAdditionalUsers.cs | 12 ++--- ...ownloadClientUnavailablePendingReleases.cs | 34 ++++++------ .../CleanupDuplicateMetadataFiles.cs | 36 ++++++------- .../CleanupOrphanedAlternativeTitles.cs | 16 +++--- .../Housekeepers/CleanupOrphanedBlocklist.cs | 16 +++--- .../CleanupOrphanedCollections.cs | 12 ++--- .../Housekeepers/CleanupOrphanedCredits.cs | 16 +++--- .../CleanupOrphanedDownloadClientStatus.cs | 16 +++--- .../Housekeepers/CleanupOrphanedExtraFiles.cs | 34 ++++++------ .../CleanupOrphanedHistoryItems.cs | 16 +++--- .../CleanupOrphanedIndexerStatus.cs | 16 +++--- .../CleanupOrphanedMetadataFiles.cs | 48 ++++++++--------- .../Housekeepers/CleanupOrphanedMovieFiles.cs | 16 +++--- .../CleanupOrphanedMovieMetadata.cs | 18 +++---- .../CleanupOrphanedMovieMovieFileIds.cs | 18 +++---- .../CleanupOrphanedMovieTranslations.cs | 16 +++--- .../CleanupOrphanedPendingReleases.cs | 16 +++--- .../CleanupOrphanedSubtitleFiles.cs | 34 ++++++------ .../Housekeepers/CleanupUnusedTags.cs | 32 ++++++------ .../FixFutureRunScheduledTasks.cs | 12 ++--- 22 files changed, 222 insertions(+), 276 deletions(-) diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAbsolutePathMetadataFiles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAbsolutePathMetadataFiles.cs index 8d50f05ded..a69a138315 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAbsolutePathMetadataFiles.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAbsolutePathMetadataFiles.cs @@ -14,34 +14,32 @@ public CleanupAbsolutePathMetadataFiles(IMainDatabase database) public void Clean() { - using (var mapper = _database.OpenConnection()) + using var mapper = _database.OpenConnection(); + if (_database.DatabaseType == DatabaseType.PostgreSQL) { - if (_database.DatabaseType == DatabaseType.PostgreSQL) - { - mapper.Execute(@"DELETE FROM ""MetadataFiles"" - WHERE ""Id"" = ANY ( - SELECT ""Id"" FROM ""MetadataFiles"" - WHERE ""RelativePath"" - LIKE '_:\\%' - OR ""RelativePath"" - LIKE '\\%' - OR ""RelativePath"" - LIKE '/%' - )"); - } - else - { - mapper.Execute(@"DELETE FROM ""MetadataFiles"" - WHERE ""Id"" IN ( - SELECT ""Id"" FROM ""MetadataFiles"" - WHERE ""RelativePath"" - LIKE '_:\%' - OR ""RelativePath"" - LIKE '\%' - OR ""RelativePath"" - LIKE '/%' - )"); - } + mapper.Execute(@"DELETE FROM ""MetadataFiles"" + WHERE ""Id"" = ANY ( + SELECT ""Id"" FROM ""MetadataFiles"" + WHERE ""RelativePath"" + LIKE '_:\\%' + OR ""RelativePath"" + LIKE '\\%' + OR ""RelativePath"" + LIKE '/%' + )"); + } + else + { + mapper.Execute(@"DELETE FROM ""MetadataFiles"" + WHERE ""Id"" IN ( + SELECT ""Id"" FROM ""MetadataFiles"" + WHERE ""RelativePath"" + LIKE '_:\%' + OR ""RelativePath"" + LIKE '\%' + OR ""RelativePath"" + LIKE '/%' + )"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalNamingSpecs.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalNamingSpecs.cs index d9c61e7903..59a4b50e91 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalNamingSpecs.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalNamingSpecs.cs @@ -14,13 +14,11 @@ public CleanupAdditionalNamingSpecs(IMainDatabase database) public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""NamingConfig"" - WHERE ""Id"" NOT IN ( - SELECT ""Id"" FROM ""NamingConfig"" - LIMIT 1)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""NamingConfig"" + WHERE ""Id"" NOT IN ( + SELECT ""Id"" FROM ""NamingConfig"" + LIMIT 1)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalUsers.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalUsers.cs index 3845110f4d..d13adbca96 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalUsers.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalUsers.cs @@ -14,13 +14,11 @@ public CleanupAdditionalUsers(IMainDatabase database) public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""Users"" - WHERE ""Id"" NOT IN ( - SELECT ""Id"" FROM ""Users"" - LIMIT 1)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""Users"" + WHERE ""Id"" NOT IN ( + SELECT ""Id"" FROM ""Users"" + LIMIT 1)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDownloadClientUnavailablePendingReleases.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDownloadClientUnavailablePendingReleases.cs index 0054feabee..98bb1474bb 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDownloadClientUnavailablePendingReleases.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDownloadClientUnavailablePendingReleases.cs @@ -16,30 +16,28 @@ public CleanupDownloadClientUnavailablePendingReleases(IMainDatabase database) public void Clean() { - using (var mapper = _database.OpenConnection()) + using var mapper = _database.OpenConnection(); + if (_database.DatabaseType == DatabaseType.PostgreSQL) { - if (_database.DatabaseType == DatabaseType.PostgreSQL) - { - mapper.Execute(@"DELETE FROM ""PendingReleases"" + mapper.Execute(@"DELETE FROM ""PendingReleases"" WHERE ""Added"" < @TwoWeeksAgo AND ""Reason"" = ANY (@Reasons)", - new - { - TwoWeeksAgo = DateTime.UtcNow.AddDays(-14), - Reasons = new[] { (int)PendingReleaseReason.DownloadClientUnavailable, (int)PendingReleaseReason.Fallback } - }); - } - else - { + new + { + TwoWeeksAgo = DateTime.UtcNow.AddDays(-14), + Reasons = new[] { (int)PendingReleaseReason.DownloadClientUnavailable, (int)PendingReleaseReason.Fallback } + }); + } + else + { mapper.Execute(@"DELETE FROM ""PendingReleases"" WHERE ""Added"" < @TwoWeeksAgo AND ""REASON"" IN @Reasons", - new - { - TwoWeeksAgo = DateTime.UtcNow.AddDays(-14), - Reasons = new[] { (int)PendingReleaseReason.DownloadClientUnavailable, (int)PendingReleaseReason.Fallback } - }); - } + new + { + TwoWeeksAgo = DateTime.UtcNow.AddDays(-14), + Reasons = new[] { (int)PendingReleaseReason.DownloadClientUnavailable, (int)PendingReleaseReason.Fallback } + }); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDuplicateMetadataFiles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDuplicateMetadataFiles.cs index c5d5537b1a..dc580ef632 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDuplicateMetadataFiles.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDuplicateMetadataFiles.cs @@ -20,30 +20,26 @@ public void Clean() private void DeleteDuplicateMovieMetadata() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""MetadataFiles"" - WHERE ""Id"" IN ( - SELECT MIN(""Id"") FROM ""MetadataFiles"" - WHERE ""Type"" = 1 - GROUP BY ""MovieId"", ""Consumer"" - HAVING COUNT(""MovieId"") > 1 - )"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""MetadataFiles"" + WHERE ""Id"" IN ( + SELECT MIN(""Id"") FROM ""MetadataFiles"" + WHERE ""Type"" = 1 + GROUP BY ""MovieId"", ""Consumer"" + HAVING COUNT(""MovieId"") > 1 + )"); } private void DeleteDuplicateMovieFileMetadata() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""MetadataFiles"" - WHERE ""Id"" IN ( - SELECT MIN(""Id"") FROM ""MetadataFiles"" - WHERE ""Type"" = 1 - GROUP BY ""MovieFileId"", ""Consumer"" - HAVING COUNT(""MovieFileId"") > 1 - )"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""MetadataFiles"" + WHERE ""Id"" IN ( + SELECT MIN(""Id"") FROM ""MetadataFiles"" + WHERE ""Type"" = 1 + GROUP BY ""MovieFileId"", ""Consumer"" + HAVING COUNT(""MovieFileId"") > 1 + )"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedAlternativeTitles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedAlternativeTitles.cs index 050008a078..b738763ef4 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedAlternativeTitles.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedAlternativeTitles.cs @@ -14,15 +14,13 @@ public CleanupOrphanedAlternativeTitles(IMainDatabase database) public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""AlternativeTitles"" - WHERE ""Id"" IN ( - SELECT ""AlternativeTitles"".""Id"" FROM ""AlternativeTitles"" - LEFT OUTER JOIN ""MovieMetadata"" - ON ""AlternativeTitles"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" - WHERE ""MovieMetadata"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""AlternativeTitles"" + WHERE ""Id"" IN ( + SELECT ""AlternativeTitles"".""Id"" FROM ""AlternativeTitles"" + LEFT OUTER JOIN ""MovieMetadata"" + ON ""AlternativeTitles"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" + WHERE ""MovieMetadata"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedBlocklist.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedBlocklist.cs index f43f8f20e2..58d27c0d4d 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedBlocklist.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedBlocklist.cs @@ -14,15 +14,13 @@ public CleanupOrphanedBlocklist(IMainDatabase database) public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""Blocklist"" - WHERE ""Id"" IN ( - SELECT ""Blocklist"".""Id"" FROM ""Blocklist"" - LEFT OUTER JOIN ""Movies"" - ON ""Blocklist"".""MovieId"" = ""Movies"".""Id"" - WHERE ""Movies"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""Blocklist"" + WHERE ""Id"" IN ( + SELECT ""Blocklist"".""Id"" FROM ""Blocklist"" + LEFT OUTER JOIN ""Movies"" + ON ""Blocklist"".""MovieId"" = ""Movies"".""Id"" + WHERE ""Movies"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedCollections.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedCollections.cs index 5e3fc4ce27..df05b9371d 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedCollections.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedCollections.cs @@ -14,13 +14,11 @@ public CleanupOrphanedCollections(IMainDatabase database) public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""Collections"" WHERE ""TmdbId"" IN (SELECT ""X"".""TmdbId"" FROM (SELECT ""Collections"".""TmdbId"", COUNT(""Movies"".""Id"") as ""MovieCount"" FROM ""Collections"" - LEFT OUTER JOIN ""MovieMetadata"" ON ""Collections"".""TmdbId"" = ""MovieMetadata"".""CollectionTmdbId"" - LEFT OUTER JOIN ""Movies"" ON ""Movies"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" - GROUP BY ""Collections"".""Id"") AS ""X"" WHERE ""X"".""MovieCount"" = 0)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""Collections"" WHERE ""TmdbId"" IN (SELECT ""X"".""TmdbId"" FROM (SELECT ""Collections"".""TmdbId"", COUNT(""Movies"".""Id"") as ""MovieCount"" FROM ""Collections"" + LEFT OUTER JOIN ""MovieMetadata"" ON ""Collections"".""TmdbId"" = ""MovieMetadata"".""CollectionTmdbId"" + LEFT OUTER JOIN ""Movies"" ON ""Movies"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" + GROUP BY ""Collections"".""Id"") AS ""X"" WHERE ""X"".""MovieCount"" = 0)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedCredits.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedCredits.cs index 88024b3fb0..0dadd23ea1 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedCredits.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedCredits.cs @@ -14,15 +14,13 @@ public CleanupOrphanedCredits(IMainDatabase database) public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""Credits"" - WHERE ""Id"" IN ( - SELECT ""Credits"".""Id"" FROM ""Credits"" - LEFT OUTER JOIN ""MovieMetadata"" - ON ""Credits"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" - WHERE ""MovieMetadata"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""Credits"" + WHERE ""Id"" IN ( + SELECT ""Credits"".""Id"" FROM ""Credits"" + LEFT OUTER JOIN ""MovieMetadata"" + ON ""Credits"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" + WHERE ""MovieMetadata"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedDownloadClientStatus.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedDownloadClientStatus.cs index b2584a4319..0856907b9e 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedDownloadClientStatus.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedDownloadClientStatus.cs @@ -14,15 +14,13 @@ public CleanupOrphanedDownloadClientStatus(IMainDatabase database) public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""DownloadClientStatus"" - WHERE ""Id"" IN ( - SELECT ""DownloadClientStatus"".""Id"" FROM ""DownloadClientStatus"" - LEFT OUTER JOIN ""DownloadClients"" - ON ""DownloadClientStatus"".""ProviderId"" = ""DownloadClients"".""Id"" - WHERE ""DownloadClients"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""DownloadClientStatus"" + WHERE ""Id"" IN ( + SELECT ""DownloadClientStatus"".""Id"" FROM ""DownloadClientStatus"" + LEFT OUTER JOIN ""DownloadClients"" + ON ""DownloadClientStatus"".""ProviderId"" = ""DownloadClients"".""Id"" + WHERE ""DownloadClients"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedExtraFiles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedExtraFiles.cs index 66d7a01e50..8de8b6d36e 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedExtraFiles.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedExtraFiles.cs @@ -20,29 +20,25 @@ public void Clean() private void DeleteOrphanedByMovie() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""ExtraFiles"" - WHERE ""Id"" IN ( - SELECT ""ExtraFiles"".""Id"" FROM ""ExtraFiles"" - LEFT OUTER JOIN ""Movies"" - ON ""ExtraFiles"".""MovieId"" = ""Movies"".""Id"" - WHERE ""Movies"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""ExtraFiles"" + WHERE ""Id"" IN ( + SELECT ""ExtraFiles"".""Id"" FROM ""ExtraFiles"" + LEFT OUTER JOIN ""Movies"" + ON ""ExtraFiles"".""MovieId"" = ""Movies"".""Id"" + WHERE ""Movies"".""Id"" IS NULL)"); } private void DeleteOrphanedByMovieFile() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""ExtraFiles"" - WHERE ""Id"" IN ( - SELECT ""ExtraFiles"".""Id"" FROM ""ExtraFiles"" - LEFT OUTER JOIN ""MovieFiles"" - ON ""ExtraFiles"".""MovieFileId"" = ""MovieFiles"".""Id"" - WHERE ""ExtraFiles"".""MovieFileId"" > 0 - AND ""MovieFiles"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""ExtraFiles"" + WHERE ""Id"" IN ( + SELECT ""ExtraFiles"".""Id"" FROM ""ExtraFiles"" + LEFT OUTER JOIN ""MovieFiles"" + ON ""ExtraFiles"".""MovieFileId"" = ""MovieFiles"".""Id"" + WHERE ""ExtraFiles"".""MovieFileId"" > 0 + AND ""MovieFiles"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs index ffe5dd6a23..90b001b8bf 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs @@ -19,15 +19,13 @@ public void Clean() private void CleanupOrphanedByMovie() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""History"" - WHERE ""Id"" IN ( - SELECT ""History"".""Id"" FROM ""History"" - LEFT OUTER JOIN ""Movies"" - ON ""History"".""MovieId"" = ""Movies"".""Id"" - WHERE ""Movies"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""History"" + WHERE ""Id"" IN ( + SELECT ""History"".""Id"" FROM ""History"" + LEFT OUTER JOIN ""Movies"" + ON ""History"".""MovieId"" = ""Movies"".""Id"" + WHERE ""Movies"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedIndexerStatus.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedIndexerStatus.cs index 059f059e4c..9486641b54 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedIndexerStatus.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedIndexerStatus.cs @@ -14,15 +14,13 @@ public CleanupOrphanedIndexerStatus(IMainDatabase database) public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""IndexerStatus"" - WHERE ""Id"" IN ( - SELECT ""IndexerStatus"".""Id"" FROM ""IndexerStatus"" - LEFT OUTER JOIN ""Indexers"" - ON ""IndexerStatus"".""ProviderId"" = ""Indexers"".""Id"" - WHERE ""Indexers"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""IndexerStatus"" + WHERE ""Id"" IN ( + SELECT ""IndexerStatus"".""Id"" FROM ""IndexerStatus"" + LEFT OUTER JOIN ""Indexers"" + ON ""IndexerStatus"".""ProviderId"" = ""Indexers"".""Id"" + WHERE ""Indexers"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMetadataFiles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMetadataFiles.cs index de9aa98b4a..cc87328d2b 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMetadataFiles.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMetadataFiles.cs @@ -21,41 +21,35 @@ public void Clean() private void DeleteOrphanedByMovie() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""MetadataFiles"" - WHERE ""Id"" IN ( - SELECT ""MetadataFiles"".""Id"" FROM ""MetadataFiles"" - LEFT OUTER JOIN ""Movies"" - ON ""MetadataFiles"".""MovieId"" = ""Movies"".""Id"" - WHERE ""Movies"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""MetadataFiles"" + WHERE ""Id"" IN ( + SELECT ""MetadataFiles"".""Id"" FROM ""MetadataFiles"" + LEFT OUTER JOIN ""Movies"" + ON ""MetadataFiles"".""MovieId"" = ""Movies"".""Id"" + WHERE ""Movies"".""Id"" IS NULL)"); } private void DeleteOrphanedByMovieFile() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""MetadataFiles"" - WHERE ""Id"" IN ( - SELECT ""MetadataFiles"".""Id"" FROM ""MetadataFiles"" - LEFT OUTER JOIN ""MovieFiles"" - ON ""MetadataFiles"".""MovieFileId"" = ""MovieFiles"".""Id"" - WHERE ""MetadataFiles"".""MovieFileId"" > 0 - AND ""MovieFiles"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""MetadataFiles"" + WHERE ""Id"" IN ( + SELECT ""MetadataFiles"".""Id"" FROM ""MetadataFiles"" + LEFT OUTER JOIN ""MovieFiles"" + ON ""MetadataFiles"".""MovieFileId"" = ""MovieFiles"".""Id"" + WHERE ""MetadataFiles"".""MovieFileId"" > 0 + AND ""MovieFiles"".""Id"" IS NULL)"); } private void DeleteWhereMovieFileIsZero() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""MetadataFiles"" - WHERE ""Id"" IN ( - SELECT ""Id"" FROM ""MetadataFiles"" - WHERE ""Type"" IN (1, 2) - AND ""MovieFileId"" = 0)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""MetadataFiles"" + WHERE ""Id"" IN ( + SELECT ""Id"" FROM ""MetadataFiles"" + WHERE ""Type"" IN (1, 2) + AND ""MovieFileId"" = 0)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieFiles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieFiles.cs index 196d3efc40..01fa972895 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieFiles.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieFiles.cs @@ -14,15 +14,13 @@ public CleanupOrphanedMovieFiles(IMainDatabase database) public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""MovieFiles"" - WHERE ""Id"" IN ( - SELECT ""MovieFiles"".""Id"" FROM ""MovieFiles"" - LEFT OUTER JOIN ""Movies"" - ON ""MovieFiles"".""Id"" = ""Movies"".""MovieFileId"" - WHERE ""Movies"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""MovieFiles"" + WHERE ""Id"" IN ( + SELECT ""MovieFiles"".""Id"" FROM ""MovieFiles"" + LEFT OUTER JOIN ""Movies"" + ON ""MovieFiles"".""Id"" = ""Movies"".""MovieFileId"" + WHERE ""Movies"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieMetadata.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieMetadata.cs index aad19ad078..fb15bf30cb 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieMetadata.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieMetadata.cs @@ -14,16 +14,14 @@ public CleanupOrphanedMovieMetadata(IMainDatabase database) public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""MovieMetadata"" - WHERE ""Id"" IN ( - SELECT ""MovieMetadata"".""Id"" FROM ""MovieMetadata"" - LEFT OUTER JOIN ""Movies"" ON ""Movies"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" - LEFT OUTER JOIN ""Collections"" ON ""Collections"".""TmdbId"" = ""MovieMetadata"".""CollectionTmdbId"" - LEFT OUTER JOIN ""ImportListMovies"" ON ""ImportListMovies"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" - WHERE ""Movies"".""Id"" IS NULL AND ""ImportListMovies"".""Id"" IS NULL AND ""Collections"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""MovieMetadata"" + WHERE ""Id"" IN ( + SELECT ""MovieMetadata"".""Id"" FROM ""MovieMetadata"" + LEFT OUTER JOIN ""Movies"" ON ""Movies"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" + LEFT OUTER JOIN ""Collections"" ON ""Collections"".""TmdbId"" = ""MovieMetadata"".""CollectionTmdbId"" + LEFT OUTER JOIN ""ImportListMovies"" ON ""ImportListMovies"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" + WHERE ""Movies"".""Id"" IS NULL AND ""ImportListMovies"".""Id"" IS NULL AND ""Collections"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieMovieFileIds.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieMovieFileIds.cs index f99a1417fd..15dc5a9178 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieMovieFileIds.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieMovieFileIds.cs @@ -14,16 +14,14 @@ public CleanupOrphanedMovieMovieFileIds(IMainDatabase database) public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"UPDATE ""Movies"" - SET ""MovieFileId"" = 0 - WHERE ""Id"" IN ( - SELECT ""Movies"".""Id"" FROM ""Movies"" - LEFT OUTER JOIN ""MovieFiles"" - ON ""Movies"".""MovieFileId"" = ""MovieFiles"".""Id"" - WHERE ""MovieFiles"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"UPDATE ""Movies"" + SET ""MovieFileId"" = 0 + WHERE ""Id"" IN ( + SELECT ""Movies"".""Id"" FROM ""Movies"" + LEFT OUTER JOIN ""MovieFiles"" + ON ""Movies"".""MovieFileId"" = ""MovieFiles"".""Id"" + WHERE ""MovieFiles"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieTranslations.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieTranslations.cs index 9db5013d65..4b5b531d3c 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieTranslations.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMovieTranslations.cs @@ -14,15 +14,13 @@ public CleanupOrphanedMovieTranslations(IMainDatabase database) public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""MovieTranslations"" - WHERE ""Id"" IN ( - SELECT ""MovieTranslations"".""Id"" FROM ""MovieTranslations"" - LEFT OUTER JOIN ""MovieMetadata"" - ON ""MovieTranslations"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" - WHERE ""MovieMetadata"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""MovieTranslations"" + WHERE ""Id"" IN ( + SELECT ""MovieTranslations"".""Id"" FROM ""MovieTranslations"" + LEFT OUTER JOIN ""MovieMetadata"" + ON ""MovieTranslations"".""MovieMetadataId"" = ""MovieMetadata"".""Id"" + WHERE ""MovieMetadata"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedPendingReleases.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedPendingReleases.cs index d2b2afd7f3..857d6c49b3 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedPendingReleases.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedPendingReleases.cs @@ -14,15 +14,13 @@ public CleanupOrphanedPendingReleases(IMainDatabase database) public void Clean() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""PendingReleases"" - WHERE ""Id"" IN ( - SELECT ""PendingReleases"".""Id"" FROM ""PendingReleases"" - LEFT OUTER JOIN ""Movies"" - ON ""PendingReleases"".""MovieId"" = ""Movies"".""Id"" - WHERE ""Movies"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""PendingReleases"" + WHERE ""Id"" IN ( + SELECT ""PendingReleases"".""Id"" FROM ""PendingReleases"" + LEFT OUTER JOIN ""Movies"" + ON ""PendingReleases"".""MovieId"" = ""Movies"".""Id"" + WHERE ""Movies"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedSubtitleFiles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedSubtitleFiles.cs index cf88a30bb7..2c8accc8cd 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedSubtitleFiles.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedSubtitleFiles.cs @@ -20,29 +20,25 @@ public void Clean() private void DeleteOrphanedByMovie() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""SubtitleFiles"" - WHERE ""Id"" IN ( - SELECT ""SubtitleFiles"".""Id"" FROM ""SubtitleFiles"" - LEFT OUTER JOIN ""Movies"" - ON ""SubtitleFiles"".""MovieId"" = ""Movies"".""Id"" - WHERE ""Movies"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""SubtitleFiles"" + WHERE ""Id"" IN ( + SELECT ""SubtitleFiles"".""Id"" FROM ""SubtitleFiles"" + LEFT OUTER JOIN ""Movies"" + ON ""SubtitleFiles"".""MovieId"" = ""Movies"".""Id"" + WHERE ""Movies"".""Id"" IS NULL)"); } private void DeleteOrphanedByMovieFile() { - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"DELETE FROM ""SubtitleFiles"" - WHERE ""Id"" IN ( - SELECT ""SubtitleFiles"".""Id"" FROM ""SubtitleFiles"" - LEFT OUTER JOIN ""MovieFiles"" - ON ""SubtitleFiles"".""MovieFileId"" = ""MovieFiles"".""Id"" - WHERE ""SubtitleFiles"".""MovieFileId"" > 0 - AND ""MovieFiles"".""Id"" IS NULL)"); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"DELETE FROM ""SubtitleFiles"" + WHERE ""Id"" IN ( + SELECT ""SubtitleFiles"".""Id"" FROM ""SubtitleFiles"" + LEFT OUTER JOIN ""MovieFiles"" + ON ""SubtitleFiles"".""MovieFileId"" = ""MovieFiles"".""Id"" + WHERE ""SubtitleFiles"".""MovieFileId"" > 0 + AND ""MovieFiles"".""Id"" IS NULL)"); } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupUnusedTags.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupUnusedTags.cs index d01ec4da5d..7465b1a45d 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupUnusedTags.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupUnusedTags.cs @@ -18,31 +18,29 @@ public CleanupUnusedTags(IMainDatabase database) public void Clean() { - using (var mapper = _database.OpenConnection()) + using var mapper = _database.OpenConnection(); + var usedTags = new[] { "Movies", "Notifications", "DelayProfiles", "Restrictions", "ImportLists", "Indexers" } + .SelectMany(v => GetUsedTags(v, mapper)) + .Distinct() + .ToList(); + + if (usedTags.Any()) { - var usedTags = new[] { "Movies", "Notifications", "DelayProfiles", "Restrictions", "ImportLists", "Indexers" } - .SelectMany(v => GetUsedTags(v, mapper)) - .Distinct() - .ToList(); + var usedTagsList = usedTags.Select(d => d.ToString()).Join(","); - if (usedTags.Any()) + if (_database.DatabaseType == DatabaseType.PostgreSQL) { - var usedTagsList = usedTags.Select(d => d.ToString()).Join(","); - - if (_database.DatabaseType == DatabaseType.PostgreSQL) - { - mapper.Execute($"DELETE FROM \"Tags\" WHERE NOT \"Id\" = ANY (\'{{{usedTagsList}}}\'::int[])"); - } - else - { - mapper.Execute($"DELETE FROM \"Tags\" WHERE NOT \"Id\" IN ({usedTagsList})"); - } + mapper.Execute($"DELETE FROM \"Tags\" WHERE NOT \"Id\" = ANY (\'{{{usedTagsList}}}\'::int[])"); } else { - mapper.Execute("DELETE FROM \"Tags\""); + mapper.Execute($"DELETE FROM \"Tags\" WHERE NOT \"Id\" IN ({usedTagsList})"); } } + else + { + mapper.Execute("DELETE FROM \"Tags\""); + } } private int[] GetUsedTags(string table, IDbConnection mapper) diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/FixFutureRunScheduledTasks.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/FixFutureRunScheduledTasks.cs index 47333e596f..afb80baf27 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/FixFutureRunScheduledTasks.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/FixFutureRunScheduledTasks.cs @@ -24,13 +24,11 @@ public void Clean() _logger.Debug("Not running scheduled task last execution cleanup during debug"); } - using (var mapper = _database.OpenConnection()) - { - mapper.Execute(@"UPDATE ""ScheduledTasks"" - SET ""LastExecution"" = @time - WHERE ""LastExecution"" > @time", - new { time = DateTime.UtcNow }); - } + using var mapper = _database.OpenConnection(); + mapper.Execute(@"UPDATE ""ScheduledTasks"" + SET ""LastExecution"" = @time + WHERE ""LastExecution"" > @time", + new { time = DateTime.UtcNow }); } } }