Пример #1
0
        public async Task <GameweekEntry> GetEntryForGameweek(ClassicLeagueEntry entry, int gameweek)
        {
            try
            {
                var entryPicksTask = _entryClient.GetPicks(entry.Entry, gameweek);
                var entryPicks     = await entryPicksTask;

                return(new GameweekEntry(entry.Entry, entry.PlayerName, entry.EntryName, entryPicks));
            }
            catch (Exception e)
            {
                _logger.LogError(e.Message, e);
                return(null);
            }
        }
Пример #2
0
    private async Task <VerifiedEntryStats> GetUpdatedStatsForEntry(int entryId, ICollection <Player> players)
    {
        var history = await _entryHistoryClient.GetHistory(entryId);

        var latestReportedGameweek = history.GameweekHistory.LastOrDefault();

        if (latestReportedGameweek == null)
        {
            return(new VerifiedEntryStats(
                       CurrentGwTotalPoints: 0,
                       LastGwTotalPoints: 0,
                       OverallRank: 0,
                       PointsThisGw: 0,
                       ActiveChip: null,
                       Captain: null,
                       ViceCaptain: null,
                       Gameweek: 0));
        }

        var picks = await _entryClient.GetPicks(entryId, latestReportedGameweek.Event);

        var captainId     = picks.Picks.SingleOrDefault(p => p.IsCaptain)?.PlayerId;
        var viceCaptainId = picks.Picks.SingleOrDefault(p => p.IsViceCaptain)?.PlayerId;
        var lastGw        = history.GameweekHistory.Count > 1 ? history.GameweekHistory.ElementAtOrDefault(history.GameweekHistory.Count - 2) : latestReportedGameweek;

        return(new VerifiedEntryStats(
                   CurrentGwTotalPoints: latestReportedGameweek.TotalPoints,
                   LastGwTotalPoints: lastGw.TotalPoints,
                   OverallRank: latestReportedGameweek.OverallRank ?? 0,
                   PointsThisGw: latestReportedGameweek.Points,
                   ActiveChip: picks.ActiveChip,
                   Captain: players.Get(captainId).WebName,
                   ViceCaptain: players.Get(viceCaptainId).WebName,
                   Gameweek: latestReportedGameweek.Event));
    }
Пример #3
0
        public async Task <string> GetCaptainsByGameWeek(int gameweek)
        {
            try
            {
                var league = await _leagueClient.GetClassicLeague(_options.Value.LeagueId);

                var players = await _playerClient.GetAllPlayers();

                var sb = new StringBuilder();

                sb.Append($":boom: *Captain picks for gameweek {gameweek}*\n");

                foreach (var team in league.Standings.Entries)
                {
                    try
                    {
                        var entry = await _entryClient.GetPicks(team.Entry, gameweek);

                        var hasUsedTripleCaptainForGameWeek = await _chipsPlayed.GetHasUsedTripleCaptainForGameWeek(gameweek, team.Entry);

                        var captainPick = entry.Picks.SingleOrDefault(pick => pick.IsCaptain);
                        var captain     = players.SingleOrDefault(player => player.Id == captainPick.PlayerId);

                        var viceCaptainPick = entry.Picks.SingleOrDefault(pick => pick.IsViceCaptain);
                        var viceCaptain     = players.SingleOrDefault(player => player.Id == viceCaptainPick.PlayerId);

                        sb.Append($"*{team.GetEntryLink(gameweek)}* - {captain.FirstName} {captain.SecondName} ({viceCaptain.FirstName} {viceCaptain.SecondName}) ");
                        if (hasUsedTripleCaptainForGameWeek)
                        {
                            sb.Append("TRIPLECAPPED!! :rocket::rocket::rocket::rocket:");
                        }
                        sb.Append("\n");
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }

                return(sb.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return($"Oops: {e.Message}");
            }
        }
Пример #4
0
        private async Task <GameweekPick> GetPick(int entryId, int gw)
        {
            var picks = await _entryClient.GetPicks(entryId, gw, tolerate404 : true);

            return(new GameweekPick(gw, picks));
        }