public static void EnqueueRandomRandomTracks(string trackType) { try { if (Sharing.UploadTracksQueueIsEmpty) { if (m_trackQueue.IsEmpty) { Random rnd = new Random(); for (int i = 0; i < Reflex.SlotCount; ++i) { int slot = i + 1; var randomTrack = Reflex.GetTracks().Where(t => t.TrackType == trackType && t.SlotNumber == slot).Select(t => t.TrackName).OrderBy(item => rnd.Next()).FirstOrDefault(); if (randomTrack != null) { AddTrackToInstallQueue(randomTrack); } } } else { Log.Add(Trackmanagement.LogMessageType.LogWarning, string.Format("Please wait for the current install operation to complete before selecting random {0} tracks.", trackType)); } } else { Log.Add(Trackmanagement.LogMessageType.LogWarning, string.Format("Your tracks are being processed for sharing. Wait for the upload operation to complete before installing new random {0} tracks.", trackType)); } } catch (Exception e) { ExceptionLogger.LogException(e); } }
public static void AddTrackToInstallQueue(string trackName) { try { if (Sharing.UploadTracksQueueIsEmpty) { var track = Reflex.GetTracks().Where(t => t.TrackName == trackName).SingleOrDefault(); if (track != null) { if (m_trackQueue.Any(q => q.TrackType == track.TrackType && q.SlotNumber == track.SlotNumber) == false) { m_trackQueue.Enqueue(track); Log.Add(Trackmanagement.LogMessageType.LogInfo, string.Format("Added '{0}' ({1} Slot {2}) to the install queue.", track.TrackName, track.TrackType, track.SlotNumber)); } else { Log.Add(Trackmanagement.LogMessageType.LogWarning, string.Format("There is already a track being installed to '{0} Slot {1}'. Wait for the current install process to finish before installing '{2}'.", track.TrackType, track.SlotNumber, track.TrackName)); } } else { Log.Add(Trackmanagement.LogMessageType.LogWarning, string.Format("Unable to find '{0}'. Install operation cancelled.", trackName)); } } else { Log.Add(Trackmanagement.LogMessageType.LogWarning, string.Format("Your tracks are being processed for sharing. Wait for the upload operation to complete before installing {0}.", trackName)); } } catch (Exception e) { ExceptionLogger.LogException(e); } }
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 string DownloadImage(string trackName) { string path = string.Empty; try { var track = Reflex.GetTracks().Where(t => t.TrackName.Trim() == trackName.Trim()).Single(); DownloadFile(track.ThumbnailUrl, string.Format(@"{0}\{1}{2}", Reflex.LocalImagePath, trackName, Path.GetExtension(track.ThumbnailUrl))); } catch (Exception e) { ExceptionLogger.LogException(e); } return(path); }