public bool Equals(Song obj) { return (Name == obj.Name) && (AudioBitrate == obj.AudioBitrate) && (IsCurrentSong == obj.IsCurrentSong) && (Artist == obj.Artist) && (Album == obj.Album) && (Number == obj.Number); }
private static IEnumerable<Song> AddFiles(string path) { List<Song> songs = new List<Song>(); try { if (Directory.Exists(path)) // is Directory { List<string> newpathList = new List<string>(); newpathList.AddRange(Directory.GetDirectories(path)); newpathList.AddRange(Directory.GetFiles(path)); foreach (var newpath in newpathList) { songs.AddRange(AddFiles(newpath)); } } else { if (File.Exists(path) && IsMediaFile(path)) { var fileWithTags = TagLib.File.Create(path); var newSong = new Song { Album = fileWithTags.Tag.Album, Artist = fileWithTags.Tag.FirstPerformer, Genre = fileWithTags.Tag.FirstGenre, Name = fileWithTags.Tag.Title, Number = fileWithTags.Tag.Track, Year = fileWithTags.Tag.Year, Path = path, Duration = fileWithTags.Properties.Duration, AudioBitrate = fileWithTags.Properties.AudioBitrate }; songs.Add(newSong); } } return songs; } catch { return new List<Song>(); } }