private async Task ProcessRoundAsync() { var winningSongIds = PartyService.VotingResults.Votes .GroupBy( v => v.Votes, v => v.SongId, (key, idk) => new { Votes = key, SongIds = idk.ToList() } ) .OrderByDescending(v => v.Votes) .First(); var winningSongIdsCount = winningSongIds.SongIds.Count(); Random random = new Random(); var winningSongId = winningSongIds.SongIds[random.Next(winningSongIdsCount)]; var winningSong = PartyService.SongListing.VotableSongs.First(s => s.Id == winningSongId); Logger.LogDebug($"WINNER: '{winningSong.Title}', with {winningSongIds.Votes} votes"); Console.WriteLine($"WINNER: '{winningSong.Title}', with {winningSongIds.Votes} votes"); var songs = await SongService.GetSongsAsync(AuthService.AuthToken, SongOptionLimit); PartyService.Reset(songs, winningSong); }
private async Task InitialiseMusicAsync() { var songs = await SongService.GetSongsAsync(AuthService.AuthToken, SongOptionLimit); PartyService.Reset(songs, SongService.StartingSong); }