public override Task <Trackmanagement.LogResponse> GetLogMessages(Trackmanagement.Empty request, ServerCallContext context)
        {
            var messages = Log.TryDequeueAll();

            return(Task.FromResult(new Trackmanagement.LogResponse
            {
                Messages = { messages }
            }));
        }
        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 override Task <Trackmanagement.Empty> InstallRandomFreeRides(Trackmanagement.Empty request, ServerCallContext context)
 {
     TrackInstaller.EnqueueRandomRandomTracks(TrackType.FreeRide);
     return(Task.FromResult(new Trackmanagement.Empty()));
 }
 public override Task <Trackmanagement.InstallStatusResponse> GetInstallStatus(Trackmanagement.Empty request, ServerCallContext context)
 {
     return(Task.FromResult(new Trackmanagement.InstallStatusResponse
     {
         InstallStatus = ""
     }));
 }