public void FillPlayList(XElement dict, iTunesSongs songsList) { Name = BCHXMLUtilities.GetKeyValStr(dict, "key", "Name"); var xSongs = from element in dict.Descendants("array").Descendants("dict") select element; Songs = new iTunesSongs(); int id = 0; int cnt = 0; foreach (var xSong in xSongs) { try { id = BCHXMLUtilities.GetKeyValInt(xSong, "key", "Track ID"); iTunesSong song = songsList.iTunesSongList.Find(s => s.TrackId == id); if (song != null) { song.SongCount = cnt++; song.PlayListName = Name; Songs.iTunesSongList.Add(song); } } catch (Exception) { // Something wasn't set, so skip the node ... } } }
public void FilliTunesSongList(string iTunesLibraryFilePath) { XDocument xDoc = XDocument.Load(iTunesLibraryFilePath); iTunesSongList = new List <iTunesSong>(); var linqtoxml = from element in xDoc.Descendants("plist").Descendants("dict").Descendants("dict").Descendants("dict") select element; int cnt = 0; foreach (var dict in linqtoxml) { try { iTunesSong song = new iTunesSong(); song.SetProperties(dict); if (song.Kind == "MPEG audio file") { song.SongCount = cnt++; iTunesSongList.Add(song); } } catch (Exception) { // Something wasn't set, so skip the node ... } } if (iTunesSongList != null && iTunesSongList.Count > 0) { //iTunesSongList.Sort( } }
public void SetProperties(XElement dict) { iTunesSong song = new iTunesSong(); TrackId = BCHXMLUtilities.GetKeyValInt(dict, "key", "Track ID"); Name = BCHXMLUtilities.GetKeyValStr(dict, "key", "Name"); Artist = BCHXMLUtilities.GetKeyValStr(dict, "key", "Artist"); AlbumArtist = BCHXMLUtilities.GetKeyValStr(dict, "key", "Album Artist"); Album = BCHXMLUtilities.GetKeyValStr(dict, "key", "Album"); Genre = BCHXMLUtilities.GetKeyValStr(dict, "key", "Genre"); Kind = BCHXMLUtilities.GetKeyValStr(dict, "key", "Kind"); Size = BCHXMLUtilities.GetKeyValInt(dict, "key", "Size"); TotalTIme = BCHXMLUtilities.GetKeyValInt(dict, "key", "Total Time"); DiscNumber = BCHXMLUtilities.GetKeyValInt(dict, "key", "Disc Number"); DiscCount = BCHXMLUtilities.GetKeyValInt(dict, "key", "Disc Count"); TrackNumber = BCHXMLUtilities.GetKeyValInt(dict, "key", "Track Number"); DateModified = BCHXMLUtilities.GetKeyValDate(dict, "key", "Date Modified"); DateAdded = BCHXMLUtilities.GetKeyValDate(dict, "key", "Date Added"); BitRate = BCHXMLUtilities.GetKeyValInt(dict, "key", "Bit Rate"); SampleRate = BCHXMLUtilities.GetKeyValInt(dict, "key", "Sample Rate"); Comments = BCHXMLUtilities.GetKeyValStr(dict, "key", "Comments"); PersistentId = BCHXMLUtilities.GetKeyValStr(dict, "key", "Persistent ID"); TrackType = BCHXMLUtilities.GetKeyValStr(dict, "key", "Track Type"); Location = BCHXMLUtilities.UrlDecode(BCHXMLUtilities.GetKeyValStr(dict, "key", "Location")); FileFolderCount = BCHXMLUtilities.GetKeyValInt(dict, "key", "File Folder Count"); LibraryFolderCount = BCHXMLUtilities.GetKeyValInt(dict, "key", "Library Folder Count"); }