Added method to delete orphaned episodeFiles and also cleanup episodes that have invalid episodeFiles.

Cleanup will run aforementioned methods before doing cleanup.
This commit is contained in:
Mark McDowall 2011-06-20 18:49:16 -07:00
commit 68b7ba9209
3 changed files with 65 additions and 1 deletions

View file

@ -74,6 +74,26 @@ namespace NzbDrone.Core.Providers
return new FileInfo(path);
}
public virtual void CleanEpisodesWithNonExistantFiles()
{
_database.Execute(@"UPDATE Episodes SET EpisodeFileId = 0
WHERE EpisodeFileId IN
(SELECT Episodes.EpisodeFileId FROM Episodes
LEFT OUTER JOIN EpisodeFiles
ON Episodes.EpisodeFileId = EpisodeFiles.EpisodeFileId
WHERE Episodes.EpisodeFileId > 0 AND EpisodeFiles.EpisodeFileId IS null)");
}
public virtual void DeleteOrphanedEpisodeFiles()
{
_database.Execute(@"DELETE FROM EpisodeFiles
WHERE EpisodeFileId IN
(SELECT EpisodeFiles.EpisodeFileId FROM EpisodeFiles
LEFT OUTER JOIN Episodes
ON EpisodeFiles.EpisodeFileId = Episodes.EpisodeFileId
WHERE Episodes.EpisodeFileId IS null)");
}
public virtual string GetNewFilename(IList<Episode> episodes, string seriesTitle, QualityTypes quality)
{
var separatorStyle = EpisodeSortingHelper.GetSeparatorStyle(_configProvider.SeparatorStyle);