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(); }
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(); }