static private FromNode ( ContentNode node ) : |
||
node | ContentNode | |
리턴 |
private void RefreshTracks(string revquery) { byte[] tracksData = client.Fetcher.Fetch(String.Format("/databases/{0}/items", id), TrackQuery + "&" + revquery); ContentNode tracksNode = ContentParser.Parse(client.Bag, tracksData); if (IsUpdateResponse(tracksNode)) { return; } // handle track additions/changes foreach (ContentNode trackNode in (ContentNode[])tracksNode.GetChild("dmap.listing").Value) { Track track = Track.FromNode(trackNode); Track existing = LookupTrackById(track.Id); if (existing == null) { AddTrack(track); } else { existing.Update(track); } } if ((byte)tracksNode.GetChild("dmap.updatetype").Value == 1) { // handle track deletions ContentNode deleteList = tracksNode.GetChild("dmap.deletedidlisting"); if (deleteList != null) { foreach (ContentNode deleted in (ContentNode[])deleteList.Value) { Track track = LookupTrackById((int)deleted.Value); if (track != null) { RemoveTrack(track); } } } } }