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