Example #1
0
 public async Task <ActionResult <IEnumerable <Game> > > GetOddsFromDataFeed(
     DataFeedId dataFeedId,
     SportId sportId,
     CancellationToken cancellation)
 {
     return(Ok(await _feedManager.GetOddsFromDataFeed(sportId, dataFeedId, cancellation)));
 }
Example #2
0
 private IDataFeed GetDataFeed(DataFeedId dataFeedId)
 {
     if (!_dataFeeds.TryGetValue(dataFeedId, out var dataFeed))
     {
         _logger.LogError("Data feed id {DataFeedId} is invalid or not available", dataFeedId);
         throw new ArgumentException($"Data feed id {dataFeedId} is invalid or not available");
     }
     return(dataFeed);
 }
Example #3
0
        public async Task <IEnumerable <Game> > GetOddsFromDataFeed(SportId sportId, DataFeedId dataFeedId, CancellationToken cancellation)
        {
            var key = GetFeedKey(sportId, dataFeedId);

            var result = await _cache.GetAsync <IEnumerable <Game> >(key, cancellation);

            if (result == null)
            {
                var dataFeed = GetDataFeed(dataFeedId);
                result = await dataFeed.GetOdds(sportId, cancellation);

                await _cache.SetAsync(key, result, dataFeed.Throttle, cancellation);
            }

            return(result);
        }
Example #4
0
        public ActionResult <IEnumerable <Option> > GetDataFeedSports(DataFeedId dataFeedId)
        {
            var sports = _feedManager.GetDataFeedSports(dataFeedId);

            return(Ok(Option.GetFromEnum(sports)));
        }
Example #5
0
        public async Task <ActionResult <IEnumerable <Game> > > CalculateArbitrageFromFeed(SportId sportId, DataFeedId dataFeedId, CancellationToken cancellation)
        {
            var games = await _feedManager.GetOddsFromDataFeed(sportId, dataFeedId, cancellation);

            return(Ok(_arbitrageCalculator.CalculateArbitrageOpportunities(games).ToList()));
        }
Example #6
0
 private static string GetFeedKey(SportId sportId, DataFeedId dataFeedId)
 {
     return($"{{{dataFeedId}}}:{{{sportId}}}");
 }
Example #7
0
        public IEnumerable <SportId> GetDataFeedSports(DataFeedId dataFeedId)
        {
            var dataFeed = GetDataFeed(dataFeedId);

            return(dataFeed.SupportedSports);
        }