using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using Aurora.Backend.Models; using Aurora.Backend.Utils; namespace Aurora.Backend.Services { public class LibraryService : BaseService { #region Fields private string _pathName = "/Users/brandonwatson/Music/iTunes/iTunes Media/Music"; private string _extensions = ".wav,.mp3,.aiff,.flac,.m4a,.m4b,.wma"; private Dictionary _library; #endregion Fields public LibraryService() { _library = new Dictionary(); LoadLibrary(); } /// /// Gets the songs. /// /// The songs. public ObservableCollection GetLibrary() { ObservableCollection collection = new ObservableCollection(); foreach (KeyValuePair pair in _library) { collection.Add(pair.Value); } return collection; } /// /// Loads library from files. /// private void LoadLibrary() { //Get songs List musicFiles = FileSystemUtils.TraverseFoldersAsync(_pathName, _extensions); foreach (FileInfo file in musicFiles) { TagLib.File tagFile = TagLib.File.Create(file.FullName); BaseSong song = new LocalSong(file) { Title = tagFile.Tag.Title, Album = tagFile.Tag.Album, Artist = tagFile.Tag.FirstAlbumArtist }; _library.Add(song.Id, song); } } } }