public override Task <Trackmanagement.SharedTrackResponse> GetSharedTracks(Trackmanagement.Empty request, ServerCallContext context)
        {
            var lists = Sharing.GetSharedTracks().Where(t => TimeUtility.Expired(t.CreationTime, TrackSharing.LifeSpanMinutes) == false).Select(t => new Trackmanagement.SharedTrackList
            {
                Name    = t.Name,
                Type    = t.Type,
                Expires = TimeUtility.TimeToExpire(t.CreationTime, TrackSharing.LifeSpanMinutes)
            })
                        .OrderByDescending(t => t.Expires)
                        .ToArray();

            return(Task.FromResult(new Trackmanagement.SharedTrackResponse
            {
                SharedTracks = { lists }
            }));
        }
예제 #2
0
 public static void EnqueueSharedTracks(string listName)
 {
     try
     {
         if (Sharing.UploadTracksQueueIsEmpty)
         {
             if (m_trackQueue.IsEmpty)
             {
                 var item = Sharing.GetSharedTracks().Where(t => t.Name == listName).SingleOrDefault();
                 if (item != null)
                 {
                     var tracks = item.Tracks.Split(",");
                     Log.Add(Trackmanagement.LogMessageType.LogInfo, string.Format("Preparing to install {0} tracks from shared list '{1}'.", tracks.Length, listName));
                     foreach (var track in tracks)
                     {
                         AddTrackToInstallQueue(track);
                     }
                 }
                 else
                 {
                     Log.Add(Trackmanagement.LogMessageType.LogError, string.Format("Failed to install shared tracks ({0}) because they were not found'.", listName));
                 }
             }
             else
             {
                 Log.Add(Trackmanagement.LogMessageType.LogWarning, string.Format("Please wait for the current install operation to complete installing shared tracks '{0}'.", listName));
             }
         }
         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} tracks.", listName));
         }
     }
     catch (Exception e)
     {
         ExceptionLogger.LogException(e);
     }
 }