public async Task <IEnumerable <GameweekEntry> > GetEntriesForGameweek(int gw, int leagueId) { try { var league = await _leagueClient.GetClassicLeague(leagueId); var entries = league.Standings.Entries; var entryDictionary = new ConcurrentBag <GameweekEntry>(); await Task.WhenAll(entries.Select(async entry => { var gameweekEntries = await _entryForGameweek.GetEntryForGameweek((ClassicLeagueEntry)entry, gw); entryDictionary.Add(gameweekEntries); })); return(entryDictionary); } catch (HttpRequestException hre) when(LogWarning(hre, gw, leagueId)) { return(Enumerable.Empty <GameweekEntry>()); } catch (Exception e) { _logger.LogError(e, e.Message); return(Enumerable.Empty <GameweekEntry>()); } }
private async Task <EntryCaptainPick> GetEntryCaptainPick(GenericEntry entry, int gameweek, ICollection <Player> players) { try { var entryForGameweekTask = _entryForGameweek.GetEntryForGameweek(entry, gameweek); var entryPicksForGameweek = await entryForGameweekTask; return(new EntryCaptainPick { Entry = entry, Captain = players.SingleOrDefault(player => player.Id == entryPicksForGameweek.Captain.PlayerId), ViceCaptain = players.SingleOrDefault(player => player.Id == entryPicksForGameweek.ViceCaptain.PlayerId), IsTripleCaptain = entryPicksForGameweek.ActiveChip == FplConstants.ChipNames.TripleCaptain }); } catch (Exception e) { _logger.LogError(e.Message, e); return(null); } }