public void FillPlayLists(iTunesSongs songs, string iTunesLibraryFilePath) { XDocument xDoc = XDocument.Load(iTunesLibraryFilePath); ITunesPlayLists = new List <iTunesPlayList>(); var linqtoxml = from element in xDoc.Descendants("plist").Descendants("dict").Descendants("array").Descendants("dict") select element; foreach (var dict in linqtoxml) { string pli = BCHXMLUtilities.GetKeyValStr(dict, "key", "Playlist Items"); if (pli.Trim().Length > 0) { try { iTunesPlayList list = new iTunesPlayList(); list.FillPlayList(dict, songs); ITunesPlayLists.Add(list); } catch (Exception) { // Something wasn't set, so skip the node ... } } } }
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 FillPlayLists(string iTunesLibraryFilePath) { iTunesSongs songs = new iTunesSongs(); songs.FilliTunesSongList(iTunesLibraryFilePath); FillPlayLists(songs, iTunesLibraryFilePath); }