コード例 #1
0
        public static void ToggleFavorite(string trackName)
        {
            lock (m_locker)
            {
                var track = Reflex.GetTracks().Where(t => t.TrackName == trackName).SingleOrDefault();
                if (track != null)
                {
                    var existing = m_tracks.Where(t => t.Name == track.TrackName && t.Type == track.TrackType).SingleOrDefault();
                    if (existing != null)
                    {
                        existing.Favorite = !existing.Favorite;
                    }
                    else
                    {
                        m_tracks.Add(new LocalTrack
                        {
                            Name           = track.TrackName,
                            Type           = track.TrackType,
                            Image          = string.Format("{0}\\{1}{2}", Reflex.LocalImagePath, track.TrackName, Path.GetExtension(track.ThumbnailUrl)).Replace("\\", "/"),
                            Data           = "",
                            Author         = track.Author,
                            Slot           = track.SlotNumber,
                            CreationTime   = track.CreationTime,
                            TotalDownloads = track.RatingVoteCount, //GNARLY_TODO: covert to downloads
                            MyDownloads    = 1,
                            Favorite       = true,
                            Installed      = false
                        });
                    }
                    SaveTracks();
                }
            }

            Reflex.FlushDisplayTracks();
        }
コード例 #2
0
        public static void HandleTrackInstall(ReflexUtility.Track track, string dataPath)
        {
            //Uninstall the track in the current slot if it exists.
            lock (m_locker)
            {
                var currentlyInstalledTrack = m_tracks.Where(t => t.Installed == true && t.Type == track.TrackType && t.Slot == track.SlotNumber).SingleOrDefault();
                if (currentlyInstalledTrack != null)
                {
                    currentlyInstalledTrack.Installed = false;
                }

                var localTrack = m_tracks.Where(t => t.Name == track.TrackName && t.Type == track.TrackType).SingleOrDefault();
                if (localTrack != null)
                {
                    localTrack.TotalDownloads = track.RatingVoteCount;
                    ++localTrack.MyDownloads;
                    localTrack.Installed = true;
                }
                else
                {
                    m_tracks.Add(new LocalTrack
                    {
                        Name           = track.TrackName,
                        Type           = track.TrackType,
                        Image          = string.Format("{0}\\{1}{2}", Reflex.LocalImagePath, track.TrackName, Path.GetExtension(track.ThumbnailUrl)).Replace("\\", "/"),
                        Data           = dataPath.Replace("\\", "/"),
                        Author         = track.Author,
                        Slot           = track.SlotNumber,
                        CreationTime   = track.CreationTime,
                        TotalDownloads = track.RatingVoteCount, //GNARLY_TODO: covert to downloads
                        MyDownloads    = 1,
                        Favorite       = false,
                        Installed      = true
                    });
                }
            }

            Reflex.FlushDisplayTracks();
        }