New: Show episode file file deletions in history and episode activity

This commit is contained in:
Mark McDowall
2014-08-20 23:29:34 -07:00
parent 5d60b21dba
commit f63476260b
21 changed files with 122 additions and 29 deletions

View File

@@ -6,6 +6,7 @@ using NLog;
using NzbDrone.Common;
using NzbDrone.Core.Datastore;
using NzbDrone.Core.Download;
using NzbDrone.Core.MediaFiles;
using NzbDrone.Core.MediaFiles.Events;
using NzbDrone.Core.Messaging.Events;
using NzbDrone.Core.Profiles;
@@ -31,7 +32,11 @@ namespace NzbDrone.Core.History
void UpdateHistoryData(Int32 historyId, Dictionary<String, String> data);
}
public class HistoryService : IHistoryService, IHandle<EpisodeGrabbedEvent>, IHandle<EpisodeImportedEvent>, IHandle<DownloadFailedEvent>
public class HistoryService : IHistoryService,
IHandle<EpisodeGrabbedEvent>,
IHandle<EpisodeImportedEvent>,
IHandle<DownloadFailedEvent>,
IHandle<EpisodeFileDeletedEvent>
{
private readonly IHistoryRepository _historyRepository;
private readonly Logger _logger;
@@ -199,5 +204,31 @@ namespace NzbDrone.Core.History
_historyRepository.Insert(history);
}
}
public void Handle(EpisodeFileDeletedEvent message)
{
if (message.Reason == DeleteMediaFileReason.NoLinkedEpisodes)
{
_logger.Debug("Removing episode file from DB as part of cleanup routine.");
return;
}
foreach (var episode in message.EpisodeFile.Episodes.Value)
{
var history = new History
{
EventType = HistoryEventType.EpisodeFileDeleted,
Date = DateTime.UtcNow,
Quality = message.EpisodeFile.Quality,
SourceTitle = message.EpisodeFile.Path,
SeriesId = message.EpisodeFile.SeriesId,
EpisodeId = episode.Id,
};
history.Data.Add("Reason", message.Reason.ToString());
_historyRepository.Insert(history);
}
}
}
}