Exemplo n.º 1
0
        public async Task <IActionResult> Leaderboard()
        {
            await _scraperService.RebuildStatsFileIfOld(DataFiles.DriverStats, 6.0, false);

            // Get Info from cache only.
            var drivers = await _scraperService.GetDriverStats();

            var rankedDrivers = drivers
                                .OrderByDescending(d => d.iRating)
                                .ThenByDescending(d => d.AvgPointsPerRace)
                                .ToList();

            foreach (var driver in rankedDrivers)
            {
                driver.Driver = AsrDriverNames.Names.ContainsKey($"{driver.CustId}")
                            ? AsrDriverNames.Names[$"{driver.CustId}"]
                            : driver.Driver;
            }

            var leaderboard = new FluentTableCreator()
                              .WithDriverStats(rankedDrivers)
                              .ForLeaderboard()
                              .Create();

            return(new ImageResult(leaderboard));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> TimeTrials(int id)
        {
            var jsonFilename = string.Format(DataFiles.TimeTrialFormat, id);

            await _scraperService.RebuildTimeTrialLeaderboardIfOld(jsonFilename, id, 6.0, true);

            var timeTrials = await _scraperService.GetTimeTrialLeaderboard(id);

            var image = new FluentTableCreator()
                        .WithTimeTrials(timeTrials)
                        .ForTimeTrials()
                        .Create();

            return(new ImageResult(image));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Season(int id, string f = null)
        {
            bool forceRefresh = !string.IsNullOrWhiteSpace(f);

            var csvFilename = string.Format(DataFiles.SeasonFormat, id);

            if ((await _scraperService.IsFileOld(csvFilename, 6.0)) || forceRefresh)
            {
                await _scraperService.GetSeriesStandingFile(id, csvFilename);
            }

            var standings = await _scraperService.GetSeasonStandings(id);

            var standingsTable = new FluentTableCreator()
                                 .WithSeasonStandings(standings)
                                 .ForStandings()
                                 .Create();

            return(new ImageResult(standingsTable));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> Stats()
        {
            await _scraperService.RebuildStatsFileIfOld(DataFiles.DriverStats, 6.0, false);

            var drivers = await _scraperService.GetDriverStats();

            foreach (var driver in drivers)
            {
                driver.Driver = AsrDriverNames.Names.ContainsKey($"{driver.CustId}")
                    ? AsrDriverNames.Names[$"{driver.CustId}"]
                    : driver.Driver;
            }

            var image = new FluentTableCreator()
                        .WithDriverStats(drivers)
                        .ForStatsTable()
                        .Create();

            return(new ImageResult(image));
        }