コード例 #1
0
        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 ...
                    }
                }
            }
        }
コード例 #2
0
        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 ...
                }
            }
        }
コード例 #3
0
        public void FillPlayLists(string iTunesLibraryFilePath)
        {
            iTunesSongs songs = new iTunesSongs();

            songs.FilliTunesSongList(iTunesLibraryFilePath);

            FillPlayLists(songs, iTunesLibraryFilePath);
        }