public bool Compare(ref MusicTrack mt, List <MusicTrack> lmt) { string title1 = this.NormalizeString(mt.Title); foreach (MusicTrack musicTrack in lmt) { string title2 = this.NormalizeString(musicTrack.Title); if (this.Levenshtein(title1, title2) == 0) { string artist1 = this.NormalizeString(mt.Artist); string artist2 = this.NormalizeString(musicTrack.Artist); string album1 = this.NormalizeString(mt.Album); string album2 = this.NormalizeString(musicTrack.Album); if ((artist1 == string.Empty || artist2 == string.Empty || this.Levenshtein(artist1, artist2) <= 3) && (album1 == string.Empty || album2 == string.Empty || this.Levenshtein(album1, album2) <= 3)) { if (mt.Artist == string.Empty || this.SpecialCharactersCount(musicTrack.Artist) > this.SpecialCharactersCount(mt.Artist)) { mt.Artist = musicTrack.Artist; } if (mt.Album == string.Empty || this.SpecialCharactersCount(musicTrack.Album) > this.SpecialCharactersCount(mt.Album)) { mt.Album = musicTrack.Album; } if (this.SpecialCharactersCount(musicTrack.Title) > this.SpecialCharactersCount(mt.Title)) { mt.Title = musicTrack.Title; } if (mt.Genre == string.Empty) { mt.Genre = musicTrack.Genre; } if (mt.Year == 0) { mt.Year = musicTrack.Year; } if (mt.Artwork == null) { mt.Artwork = musicTrack.Artwork; } return(true); } } } return(false); }
private static Song SongFromMusicTrack(MusicTrack musicTrack, string fileHash, string fileName) { var song = new Song { Artist = musicTrack.Artist != null ? musicTrack.Artist : "Unknown", Album = musicTrack.Album != null ? musicTrack.Album : "Unknown", Title = musicTrack.Title != null ? musicTrack.Title : "Unknown", Artwork = musicTrack.Artwork, Bitrate = musicTrack.Bitrate, Duration = musicTrack.Duration, Genre = musicTrack.Genre, Year = musicTrack.Year, Hash = fileHash, FileName = fileName }; return(song); }