Delete is setup, just need to add a link to follow through on the delete.

Removes EpisodeFiles, Episodes, Season and then the Series.
pull/4/head
markus101 14 years ago
parent dbca3a1974
commit 88ad555e75

@ -37,6 +37,11 @@ namespace NzbDrone.Core.Providers
return Directory.CreateDirectory(path).FullName;
}
public void DeleteFile(string path)
{
File.Delete(path);
}
#endregion
}
}

@ -21,7 +21,6 @@ namespace NzbDrone.Core.Providers
private readonly IQualityProvider _quality;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public EpisodeProvider(IRepository sonicRepo, ISeriesProvider seriesProvider, ISeasonProvider seasonProvider, ITvDbProvider tvDbProvider, IHistoryProvider history, IQualityProvider quality)
{
_sonicRepo = sonicRepo;
@ -262,6 +261,11 @@ namespace NzbDrone.Core.Providers
Logger.Debug("Finished episode refresh for series:{0}. Successful:{1} - Failed:{2} ", targetSeries.SeriesName, successCount, failCount);
}
public void DeleteEpisode(int episodeId)
{
_sonicRepo.Delete<Episode>(episodeId);
}
private bool IsSeasonIgnored(EpisodeModel episode)
{
//Check if this Season is ignored

@ -11,5 +11,6 @@ namespace NzbDrone.Core.Providers
string[] GetFiles(string path, string pattern, SearchOption searchOption);
bool FileExists(string path);
long GetSize(string path);
void DeleteFile(string path);
}
}

@ -22,5 +22,6 @@ namespace NzbDrone.Core.Providers
void RefreshEpisodeInfo(int seriesId);
void RefreshEpisodeInfo(Season season);
IList<Episode> GetEpisodeBySeason(long seasonId);
void DeleteEpisode(int episodeId);
}
}

@ -13,5 +13,7 @@ namespace NzbDrone.Core.Providers
EpisodeFile ImportFile(Series series, string filePath);
string GenerateEpisodePath(EpisodeModel episode);
void DeleteFromDb(int fileId);
void DeleteFromDisk(int fileId, string path);
}
}

@ -12,5 +12,6 @@ namespace NzbDrone.Core.Providers
int SaveSeason(Season season);
bool IsIgnored(int seasonId);
bool IsIgnored(int seriesId, int seasonNumber);
void DeleteSeason(int seasonId);
}
}

@ -25,5 +25,6 @@ namespace NzbDrone.Core.Providers
Series FindSeries(string cleanTitle);
bool QualityWanted(int seriesId, QualityTypes quality);
void UpdateSeries(Series series);
void DeleteSeries(int seriesId);
}
}

@ -112,6 +112,17 @@ namespace NzbDrone.Core.Providers
return String.Format(episodeNamePattern, episode.SeriesTitle, episode.EpisodeNumber, episode.SeasonNumber, episode.EpisodeTitle, episode.Quality);
}
public void DeleteFromDb(int fileId)
{
_repository.Delete<EpisodeFile>(fileId);
}
public void DeleteFromDisk(int fileId, string path)
{
_diskProvider.DeleteFile(path);
_repository.Delete<EpisodeFile>(fileId);
}
private List<string> GetMediaFileList(string path)
{
Logger.Debug("Scanning '{0}' for episodes", path);

@ -71,5 +71,10 @@ namespace NzbDrone.Core.Providers
Logger.Debug("Season: {0} is not wanted for Series: {1}", seasonNumber, seriesId);
return true;
}
public void DeleteSeason(int seasonId)
{
_sonicRepo.Delete<Season>(seasonId);
}
}
}

@ -22,9 +22,11 @@ namespace NzbDrone.Core.Providers
private readonly IRepository _sonioRepo;
private readonly ITvDbProvider _tvDb;
private readonly IQualityProvider _quality;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public SeriesProvider(IDiskProvider diskProvider, IConfigProvider configProvider, IRepository dataRepository, ITvDbProvider tvDbProvider, IQualityProvider quality)
public SeriesProvider(IDiskProvider diskProvider, IConfigProvider configProvider,
IRepository dataRepository, ITvDbProvider tvDbProvider, IQualityProvider quality)
{
_diskProvider = diskProvider;
_config = configProvider;
@ -122,6 +124,26 @@ namespace NzbDrone.Core.Providers
_sonioRepo.Update(series);
}
public void DeleteSeries(int seriesId)
{
var series = _sonioRepo.Single<Series>(seriesId);
//Delete Files, Episdes, Seasons then the Series
//Can't use providers because episode provider needs series provider - Cyclic Dependency Injection, this will work
Logger.Debug("Deleting EpisodeFiles from DB for Series: {0}", series.SeriesId);
_sonioRepo.DeleteMany(series.Files);
Logger.Debug("Deleting Episodes from DB for Series: {0}", series.SeriesId);
_sonioRepo.DeleteMany(series.Episodes);
Logger.Debug("Deleting Seasons from DB for Series: {0}", series.SeriesId);
_sonioRepo.DeleteMany(series.Seasons);
Logger.Debug("Deleting Series from DB {0}", series.Title);
_sonioRepo.Delete<Series>(seriesId);
}
#endregion
#region Static Helpers

@ -181,5 +181,13 @@ namespace NzbDrone.Web.Controllers
_seriesProvider.UpdateSeries(series);
return Content("Series Updated Successfully");
}
public ActionResult Delete(int seriesId)
{
//Need to add seriesProvider.Update
_seriesProvider.DeleteSeries(seriesId);
return RedirectToAction("Index", "Series");
}
}
}

Loading…
Cancel
Save