public void Handle(BookFileDeletedEvent message) { var bookFile = message.BookFile; if (message.Reason == DeleteMediaFileReason.NoLinkedEpisodes) { _logger.Debug("Removing track file from DB as part of cleanup routine, not deleting extra files from disk."); } else { var author = bookFile.Author.Value; foreach (var extra in _repository.GetFilesByBookFile(bookFile.Id)) { var path = Path.Combine(author.Path, extra.RelativePath); if (_diskProvider.FileExists(path)) { // Send to the recycling bin so they can be recovered if necessary var subfolder = _diskProvider.GetParentFolder(author.Path).GetRelativePath(_diskProvider.GetParentFolder(path)); _recycleBinProvider.DeleteFile(path, subfolder); } } } _logger.Debug("Deleting Extra from database for track file: {0}", bookFile); _repository.DeleteForBookFile(bookFile.Id); }
public void Handle(BookFileDeletedEvent message) { if (message.Reason == DeleteMediaFileReason.NoLinkedEpisodes) { _logger.Debug("Removing book file from DB as part of cleanup routine, not creating history event."); return; } else if (message.Reason == DeleteMediaFileReason.ManualOverride) { _logger.Debug("Removing book file from DB as part of manual override of existing file, not creating history event."); return; } var history = new History { EventType = HistoryEventType.BookFileDeleted, Date = DateTime.UtcNow, Quality = message.BookFile.Quality, SourceTitle = message.BookFile.Path, AuthorId = message.BookFile.Author.Value.Id, BookId = message.BookFile.EditionId }; history.Data.Add("Reason", message.Reason.ToString()); _historyRepository.Insert(history); }
public void Handle(BookFileDeletedEvent message) { var deleteMessage = new BookFileDeleteMessage(); var book = new List <Book> { message.BookFile.Edition.Value.Book }; deleteMessage.Message = GetMessage(message.BookFile.Author, book, message.BookFile.Quality); deleteMessage.BookFile = message.BookFile; deleteMessage.Book = message.BookFile.Edition.Value.Book; deleteMessage.Reason = message.Reason; foreach (var notification in _notificationFactory.OnBookFileDeleteEnabled()) { try { if (message.Reason != MediaFiles.DeleteMediaFileReason.Upgrade || ((NotificationDefinition)notification.Definition).OnBookFileDeleteForUpgrade) { if (ShouldHandleAuthor(notification.Definition, message.BookFile.Author)) { notification.OnBookFileDelete(deleteMessage); } } } catch (Exception ex) { _logger.Warn(ex, "Unable to send OnBookFileDelete notification to: " + notification.Definition.Name); } } }
public void Handle(BookFileDeletedEvent message) { if (message.Reason == DeleteMediaFileReason.Upgrade) { return; } BroadcastResourceChange(ModelAction.Updated, GetAuthorResource(message.BookFile.Author.Value)); }
public void Handle(BookFileDeletedEvent message) { if (message.Reason == DeleteMediaFileReason.Upgrade) { return; } BroadcastResourceChange(ModelAction.Updated, MapToResource(message.BookFile.Edition.Value.Book.Value, true)); }
public void Handle(BookFileDeletedEvent message) { _cache.Remove("AllAuthors"); var authorId = message.BookFile.Author?.Value?.Id.ToString(); if (authorId != null) { _cache.Remove(authorId); } }
public void Handle(BookFileDeletedEvent message) { if (message.Reason == DeleteMediaFileReason.Upgrade) { return; } if (_configService.DeleteEmptyFolders) { var author = message.BookFile.Author.Value; var bookFolder = message.BookFile.Path.GetParentPath(); if (_diskProvider.GetFiles(author.Path, SearchOption.AllDirectories).Empty()) { _diskProvider.DeleteFolder(author.Path, true); } else if (_diskProvider.GetFiles(bookFolder, SearchOption.AllDirectories).Empty()) { _diskProvider.RemoveEmptySubfolders(bookFolder); } } }
public void Handle(BookFileDeletedEvent message) { BroadcastResourceChange(ModelAction.Deleted, MapToResource(message.BookFile)); }
public void Handle(BookFileDeletedEvent message) { _cache.Remove("AllAuthors"); _cache.Remove(message.BookFile.Author.Value.Id.ToString()); }