示例#1
0
        public async Task GetMatchBetsWithResultsInLatestSeason_IntegrationTests_ShouldReturnResultsFromCyprusFirstDivision()
        {
            //Arrange
            var leagueUrl     = @"https://www.oddsportal.com";
            var countryLeague = new CountryLeague
            {
                Country = Country.Gambia,
                League  = "gfa-league"
            };

            var result = default(IEnumerable <MatchBet>);

            //Act
            result = await _serviceUnderTest.GetMatchBetsWithResultsInLatestSeason(leagueUrl, countryLeague, null);

            //Assert
            Assert.NotNull(result);

            var serializedObject = JsonConvert.SerializeObject(result);

            using (var sw = new StreamWriter(@"oddsResults.json", false))
            {
                await sw.WriteAsync(serializedObject);
            }
        }
示例#2
0
        public Task <IEnumerable <MatchBet> > GetResults(Country country, string leagueName, DateTime?fromDate)
        {
            var url = ConfigurationManager.AppSettings["OddsPortalUrl"];

            var countryLeague = new CountryLeague
            {
                Country = country,
                League  = leagueName
            };

            return(_webScraper.GetMatchBetsWithResultsInLatestSeason(url, countryLeague, fromDate));
        }
示例#3
0
        public async Task <IEnumerable <MatchBet> > GetMatchBetsWithResultsInLatestSeason(string baseUrl, CountryLeague countryLeague, DateTime?fromDate)
        {
            _baseUrl = baseUrl;
            _countryLeagueResultsUrl = $"{baseUrl}/soccer/{countryLeague.Country}/{countryLeague.League}/results/".ToLower();
            _fromDate = fromDate;

            var pagesCount = GetResultsPagesCount();

            var matchBetsResults = new List <MatchBet>();

            for (var i = 1; i <= pagesCount; i++)
            {
                var results = await GetMatchesDetails(i);

                matchBetsResults.AddRange(results);
            }

            return(matchBetsResults);
        }