Ejemplo n.º 1
0
        public void Handle(TrackFileRetaggedEvent message)
        {
            var path = message.TrackFile.Path;

            foreach (var track in message.TrackFile.Tracks.Value)
            {
                var history = new History
                {
                    EventType   = HistoryEventType.TrackFileRetagged,
                    Date        = DateTime.UtcNow,
                    Quality     = message.TrackFile.Quality,
                    SourceTitle = path,
                    ArtistId    = message.TrackFile.Artist.Value.Id,
                    AlbumId     = message.TrackFile.AlbumId,
                    TrackId     = track.Id,
                };

                history.Data.Add("TagsScrubbed", message.Scrubbed.ToString());
                history.Data.Add("Diff", message.Diff.Select(x => new
                {
                    Field    = x.Key,
                    OldValue = x.Value.Item1,
                    NewValue = x.Value.Item2
                }).ToJson());

                _historyRepository.Insert(history);
            }
        }
Ejemplo n.º 2
0
        public void Handle(TrackFileRetaggedEvent message)
        {
            var retagMessage = new TrackRetagMessage
            {
                Message   = GetTrackRetagMessage(message.Artist, message.TrackFile, message.Diff),
                Artist    = message.Artist,
                Album     = message.TrackFile.Album,
                Release   = message.TrackFile.Tracks.Value.First().AlbumRelease.Value,
                TrackFile = message.TrackFile,
                Diff      = message.Diff,
                Scrubbed  = message.Scrubbed
            };

            foreach (var notification in _notificationFactory.OnTrackRetagEnabled())
            {
                if (ShouldHandleArtist(notification.Definition, message.Artist))
                {
                    notification.OnTrackRetag(retagMessage);
                }
            }
        }