Ejemplo n.º 1
0
        public static async Task Run([TimerTrigger("0 30 */6 * * *")] TimerInfo myTimer, ILogger log)
        {
            log.LogInformation($"[BEGIN] ResultsImporter: {DateTime.Now}");
            var serviceProvider   = new ServiceCollection().AddHttpClient().BuildServiceProvider();
            var httpClientFactory = serviceProvider.GetService <IHttpClientFactory>();

            var settings = AppSettings.Configure();

            using (var sqlConnection = new SqlConnection(settings.Database.ConnectionString))
            {
                sqlConnection.Open();
                var databaseConnection = new DatabaseConnection(sqlConnection);

                IProvider <Competition> competitionDb = new CompetitionDatabase(databaseConnection);
                IDatabase <Team>        teamDb        = new TeamDatabase(databaseConnection);
                IGameweekDatabase       gameweekDb    = new GameweekDatabase(databaseConnection);

                var fixtureMapper   = new Mappers.ApiFootball.FixtureMapper(competitionDb, teamDb, gameweekDb);
                var fixtureProvider = new ApiFootballFixtureProvider(httpClientFactory, settings.Api.AuthToken, fixtureMapper);

                var fixtureDb = new FixtureDatabase(databaseConnection);
                var today     = DateTime.Today;
                var fixtures  = await FixtureCollection.RetrieveFrom(fixtureProvider, today.AddDays(-2), today);

                log.LogInformation($"Retrieved {fixtures.Count()} fixtures");
                fixtures.SaveTo(fixtureDb);
            }
            log.LogInformation($"[COMPLETE] ResultsImporter: {DateTime.Now}");
        }
        public static async Task Run([TimerTrigger("0 45 17 * * *")] TimerInfo myTimer, ILogger log)
        {
            log.LogInformation($"[BEGIN] StandingsImporter: {DateTime.Now}");
            var serviceProvider   = new ServiceCollection().AddHttpClient().BuildServiceProvider();
            var httpClientFactory = serviceProvider.GetService <IHttpClientFactory>();

            var settings = AppSettings.Configure();

            using (var sqlConnection = new SqlConnection(settings.Database.ConnectionString))
            {
                sqlConnection.Open();
                var databaseConnection = new DatabaseConnection(sqlConnection);

                var standingsMapper     = new StandingsMapper();
                var topEuroCompetitions = new CompetitionDatabase(databaseConnection, new[] { 524, 565, 581, 582, 764, 770, 525, 526, 573, 574, 988, 754, 755, 771, 775, 776, 891, 902, 656, 766, 1264, 432, 577, 576, 357, 566, 571, 787, 1312, 1310 });
                var standingsProvider   = new ApiFootballStandingProvider(httpClientFactory, settings.Api.AuthToken, standingsMapper, topEuroCompetitions, new ApiFootballThrottler());
                var standings           = await StandingsCollection.RetrieveFrom(standingsProvider);

                var teamDb        = new TeamDatabase(databaseConnection);
                var competitionDb = new CompetitionDatabase(databaseConnection);
                var standingsDb   = new StandingsDatabase(databaseConnection, teamDb, competitionDb);

                log.LogInformation($"Retrieved {standings.Count()} league standings");
                await standings.SaveTo(standingsDb, competitionDb, teamDb);
            }

            log.LogInformation($"[COMPLETE] StandingsImporter: {DateTime.Now}");
        }
Ejemplo n.º 3
0
        public static async Task Run([TimerTrigger("0 0 1 * * *")] TimerInfo myTimer, ILogger log) //0 0 1 * * *
        {
            log.LogInformation($"[BEGIN] CompetitionImporter: {DateTime.Now}");
            var serviceProvider = new ServiceCollection().AddHttpClient().BuildServiceProvider();

            var settings          = AppSettings.Configure();
            var httpClientFactory = serviceProvider.GetService <IHttpClientFactory>();

            using (var sqlConnection = new SqlConnection(settings.Database.ConnectionString))
            {
                sqlConnection.Open();
                var databaseConnection = new DatabaseConnection(sqlConnection);
                var regionDb           = new RegionDatabase(databaseConnection);
                var mapper             = new Mappers.ApiFootball.CompetitionMapper(regionDb);
                //var provider = new FootballDataCompetitionProvider(httpClientFactory, settings.Api.AuthToken, mapper);
                var provider = new ApiFootballCompetitionProvider(httpClientFactory, settings.Api.AuthToken, mapper);

                var competitionDb = new CompetitionDatabase(databaseConnection);
                var competitions  = await CompetitionCollection.RetrieveFrom(provider);

                log.LogInformation($"Retrieved {competitions.Count()} competitions");
                competitions.SaveTo(competitionDb);
            }
            log.LogInformation($"[COMPLETE] CompetitionImporter: {DateTime.Now}");
        }