Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
                }
            }
        }
Ejemplo n.º 4
0
        public void Handle(BookFileDeletedEvent message)
        {
            if (message.Reason == DeleteMediaFileReason.Upgrade)
            {
                return;
            }

            BroadcastResourceChange(ModelAction.Updated, GetAuthorResource(message.BookFile.Author.Value));
        }
Ejemplo n.º 5
0
        public void Handle(BookFileDeletedEvent message)
        {
            if (message.Reason == DeleteMediaFileReason.Upgrade)
            {
                return;
            }

            BroadcastResourceChange(ModelAction.Updated, MapToResource(message.BookFile.Edition.Value.Book.Value, true));
        }
Ejemplo n.º 6
0
        public void Handle(BookFileDeletedEvent message)
        {
            _cache.Remove("AllAuthors");

            var authorId = message.BookFile.Author?.Value?.Id.ToString();

            if (authorId != null)
            {
                _cache.Remove(authorId);
            }
        }
Ejemplo n.º 7
0
        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);
                }
            }
        }
Ejemplo n.º 8
0
 public void Handle(BookFileDeletedEvent message)
 {
     BroadcastResourceChange(ModelAction.Deleted, MapToResource(message.BookFile));
 }
Ejemplo n.º 9
0
 public void Handle(BookFileDeletedEvent message)
 {
     _cache.Remove("AllAuthors");
     _cache.Remove(message.BookFile.Author.Value.Id.ToString());
 }