Ejemplo n.º 1
0
        public void Handle(TrackFolderCreatedEvent message)
        {
            var artist = message.Artist;
            var album  = _albumService.GetAlbum(message.TrackFile.AlbumId);

            foreach (var extraFileManager in _extraFileManagers)
            {
                extraFileManager.CreateAfterTrackImport(artist, album, message.ArtistFolder, message.AlbumFolder);
            }
        }
Ejemplo n.º 2
0
        public void Handle(TrackFolderCreatedEvent message)
        {
            var author = message.Author;
            var book   = _bookService.GetBook(message.BookFile.EditionId);

            foreach (var extraFileManager in _extraFileManagers)
            {
                extraFileManager.CreateAfterBookImport(author, book, message.AuthorFolder, message.BookFolder);
            }
        }
Ejemplo n.º 3
0
        public void Handle(TrackFolderCreatedEvent message)
        {
            var author  = message.Author;
            var edition = _editionService.GetEdition(message.BookFile.EditionId);

            foreach (var extraFileManager in _extraFileManagers)
            {
                extraFileManager.CreateAfterBookImport(author, edition.Book.Value, message.AuthorFolder, message.BookFolder);
            }
        }
Ejemplo n.º 4
0
        private void EnsureBookFolder(BookFile bookFile, Author author, Book book, string filePath)
        {
            var trackFolder  = Path.GetDirectoryName(filePath);
            var bookFolder   = _buildFileNames.BuildBookPath(author);
            var authorFolder = author.Path;
            var rootFolder   = new OsPath(authorFolder).Directory.FullPath;

            if (!_diskProvider.FolderExists(rootFolder))
            {
                throw new RootFolderNotFoundException(string.Format("Root folder '{0}' was not found.", rootFolder));
            }

            var changed  = false;
            var newEvent = new TrackFolderCreatedEvent(author, bookFile);

            _rootFolderWatchingService.ReportFileSystemChangeBeginning(authorFolder, bookFolder, trackFolder);

            if (!_diskProvider.FolderExists(authorFolder))
            {
                CreateFolder(authorFolder);
                newEvent.AuthorFolder = authorFolder;
                changed = true;
            }

            if (authorFolder != bookFolder && !_diskProvider.FolderExists(bookFolder))
            {
                CreateFolder(bookFolder);
                newEvent.BookFolder = bookFolder;
                changed             = true;
            }

            if (bookFolder != trackFolder && !_diskProvider.FolderExists(trackFolder))
            {
                CreateFolder(trackFolder);
                newEvent.TrackFolder = trackFolder;
                changed = true;
            }

            if (changed)
            {
                _eventAggregator.PublishEvent(newEvent);
            }
        }
Ejemplo n.º 5
0
        private void EnsureTrackFolder(TrackFile trackFile, Artist artist, Album album, string filePath)
        {
            var trackFolder  = Path.GetDirectoryName(filePath);
            var albumFolder  = _buildFileNames.BuildAlbumPath(artist, album);
            var artistFolder = artist.Path;
            var rootFolder   = new OsPath(artistFolder).Directory.FullPath;

            if (!_diskProvider.FolderExists(rootFolder))
            {
                throw new RootFolderNotFoundException(string.Format("Root folder '{0}' was not found.", rootFolder));
            }

            var changed  = false;
            var newEvent = new TrackFolderCreatedEvent(artist, trackFile);

            if (!_diskProvider.FolderExists(artistFolder))
            {
                CreateFolder(artistFolder);
                newEvent.ArtistFolder = artistFolder;
                changed = true;
            }

            if (artistFolder != albumFolder && !_diskProvider.FolderExists(albumFolder))
            {
                CreateFolder(albumFolder);
                newEvent.AlbumFolder = albumFolder;
                changed = true;
            }

            if (albumFolder != trackFolder && !_diskProvider.FolderExists(trackFolder))
            {
                CreateFolder(trackFolder);
                newEvent.TrackFolder = trackFolder;
                changed = true;
            }

            if (changed)
            {
                _eventAggregator.PublishEvent(newEvent);
            }
        }