FromNode() 정적인 개인적인 메소드

static private FromNode ( ContentNode node ) : Track
node ContentNode
리턴 Track
예제 #1
0
        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);
                        }
                    }
                }
            }
        }