From dcca3f02366d5e54fb6eefeb0ccc7c5261e49e48 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 1 Oct 2013 14:31:32 -0400 Subject: update music artist when saving artist --- MediaBrowser.Controller/Entities/Audio/Artist.cs | 38 +++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/Entities/Audio/Artist.cs b/MediaBrowser.Controller/Entities/Audio/Artist.cs index e0d80527cb..07bb68b95c 100644 --- a/MediaBrowser.Controller/Entities/Audio/Artist.cs +++ b/MediaBrowser.Controller/Entities/Audio/Artist.cs @@ -1,7 +1,11 @@ -using System.Runtime.Serialization; +using System.Globalization; +using System.Linq; +using MediaBrowser.Controller.Library; using MediaBrowser.Model.Dto; using System; using System.Collections.Generic; +using System.Runtime.Serialization; +using MediaBrowser.Model.Entities; namespace MediaBrowser.Controller.Entities.Audio { @@ -28,5 +32,37 @@ namespace MediaBrowser.Controller.Entities.Audio [IgnoreDataMember] public Dictionary UserItemCounts { get; set; } + + /// + /// Finds the music artist. + /// + /// The artist. + /// The library manager. + /// MusicArtist. + public static MusicArtist FindMusicArtist(Artist artist, ILibraryManager libraryManager) + { + return FindMusicArtist(artist, libraryManager.RootFolder.RecursiveChildren.OfType()); + } + + /// + /// Finds the music artist. + /// + /// The artist. + /// All music artists. + /// MusicArtist. + public static MusicArtist FindMusicArtist(Artist artist, IEnumerable allMusicArtists) + { + var musicBrainzId = artist.GetProviderId(MetadataProviders.Musicbrainz); + + return allMusicArtists.FirstOrDefault(i => + { + if (!string.IsNullOrWhiteSpace(musicBrainzId) && string.Equals(musicBrainzId, i.GetProviderId(MetadataProviders.Musicbrainz), StringComparison.OrdinalIgnoreCase)) + { + return true; + } + + return string.Compare(i.Name, artist.Name, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase | CompareOptions.IgnoreSymbols) == 0; + }); + } } } -- cgit v1.2.3