public async Task <SingleEventView> GetSingleEventAsync(string token, int eventId) { var result = await _retryPolicy.ExecuteAndCaptureAsync(() => _betsApiClient.GetSingleEventAsync(token, eventId)); return(result.Result); }
private async Task <List <Tuple <Score, Score> > > GetHistoryOfGamesAsync(int eventId) { var result = new List <Tuple <Score, Score> >(); var singleEvent = await _betsApiClient.GetSingleEventAsync(_configuration.BetsApiAccessToken, eventId); var name1 = singleEvent.Results[0].Home.Name; var name2 = singleEvent.Results[0].Away.Name; using (var db = _dbContextAccessor()) { var games = await db.Games .Include(g => g.Player1) .Include(g => g.Player2) .Include(g => g.Scores) .ThenInclude(sc => sc.Score) .AsNoTracking().Where(g => g.Player1.Name == name1 && g.Player2.Name == name2 || g.Player1.Name == name2 && g.Player2.Name == name1) .OrderByDescending(g => g.Id) .Take(_configuration.MaxGamesToRetrieve) .ToListAsync(); foreach (var gameScore in games.SelectMany(g => g.Scores)) { var score1 = new Score { ActualScore = gameScore.Score.Score1, PlayerName = name1 }; var score2 = new Score { ActualScore = gameScore.Score.Score2, PlayerName = name2 }; result.Add(new Tuple <Score, Score>(score1, score2)); } } return(result.ToList()); }