Пример #1
0
        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);
        }
Пример #2
0
        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);
        }