示例#1
0
 public PartyDiagnostics GetDiagnostics()
 {
     return(new PartyDiagnostics
     {
         Host = _host,
         Listeners = _listeners.Select(pair => pair.Value).ToList(),
         PartyCode = _partyCode,
         Queue = _queue.GetAllTracks(),
         History = _history,
         CurrentTrack = _currentTrack.GetTrackWithoutFeelings(),
         LikedSongs = _queue.GetLikedTrackUris()
     });
 }
示例#2
0
 public Track GetCurrentSong()
 {
     return(_currentTrack?.GetTrackWithoutFeelings());
 }
示例#3
0
        private async Task StartQueueAsync()
        {
            _currentTrack = _queue.NextTrack();

            UpdateTimerWithNewTrack();

            await DomainEvents.RaiseAsync(new ChangeTrack { PartyCode = _partyCode, Listeners = _listeners.Values.ToList(), Track = _currentTrack.GetTrackWithoutFeelings(), ProgressMs = 0 });
        }
示例#4
0
        private async Task NextTrackAsync()
        {
            AddCurrentTrackToHistory();

            if (_queue.HasNextTrack())
            {
                _currentTrack = _queue.NextTrack();

                UpdateTimerWithNewTrack();

                await DomainEvents.RaiseAsync(new ChangeTrack { PartyCode = _partyCode, Listeners = _listeners.Values.ToList(), Track = _currentTrack.GetTrackWithoutFeelings(), ProgressMs = 0 });
            }
            else
            {
                _currentTrack = null;
                var seeds = GetSeedUris(5);
                await DomainEvents.RaiseAsync(new QueueEnded { PartyCode = _partyCode, SeedTracksUris = seeds.Item1, SeedArtistUris = seeds.Item2 });
            }
        }