示例#1
0
 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);
     }
 }
示例#2
0
        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);
            }
        }
示例#3
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();
        }
示例#4
0
        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);
        }