Beispiel #1
0
        public async Task <MusicBrainzSearchResult> GetTracks(MusicBrainzSearchResult release)
        {
            if (release.Equals(MusicBrainzSearchResult.Empty))
            {
                throw new ArgumentException("Id is empty!");
            }
            if (release.Id == Guid.Empty)
            {
                throw new ArgumentException("Id is empty!");
            }

            try
            {
                var res = await _query.LookupReleaseAsync(release.Id, Include.Genres | Include.Media | Include.Recordings);

                if (res == null || !res.Media.Any())
                {
                    return(MusicBrainzSearchResult.Empty);
                }

                release.Genre  = res.Media[0].Tracks?[0].Recording.Genres?.FirstOrDefault()?.Name;
                release.Tracks = res.Media[0].Tracks?.Count > 0 ? res.Media[0].Tracks.Select(x => x.Title) : Enumerable.Empty <string>();

                return(release);
            }
            catch
            {
                return(release);
            }
        }
Beispiel #2
0
        private void ApplyOnlineMetatags(MusicBrainzSearchResult musicBrainz)
        {
            if (musicBrainz.Tracks == null || !musicBrainz.Tracks.Any())
            {
                return;
            }

            for (int i = 0; i < Files.Length; i++)
            {
                if (!string.IsNullOrEmpty(musicBrainz.Artist))
                {
                    Files[i].Artist = musicBrainz.Artist;
                }

                if (!string.IsNullOrEmpty(musicBrainz.Release))
                {
                    Files[i].Album = musicBrainz.Release;
                }

                if (!string.IsNullOrEmpty(musicBrainz.Year))
                {
                    Files[i].Year = string.IsNullOrEmpty(musicBrainz.Year) ? 0 : int.Parse(musicBrainz.Year);
                }

                if (!string.IsNullOrEmpty(musicBrainz.Genre))
                {
                    Files[i].Genre = musicBrainz.Genre;
                }

                if (!string.IsNullOrEmpty(musicBrainz.Tracks.ElementAtOrDefault(i)))
                {
                    Files[i].TrackName   = musicBrainz.Tracks.ElementAt(i);
                    Files[i].TrackNumber = i + 1;
                }

                Files[i].Tags = MetatagsHelpers.CreateMetatags(
                    Files[i].Artist,
                    Files[i].Album,
                    Files[i].Year.HasValue ? Files[i].Year.ToString() : string.Empty,
                    Files[i].Genre,
                    Files[i].TrackName,
                    Files[i].TrackNumber.HasValue ? Files[i].TrackNumber.ToString() : string.Empty);
            }

            dgFilesSelected.Refresh();
        }