private QuickStatsV2Model HandleGetQuickstatsV2Data(HistoricalPdfStats currentPdfData) { _logger.LogInformation($"Hanling {nameof(GetQuickstatsV2Data)}"); var response = new QuickStatsV2Model() { History = new InfectionsStatsV2Model[0], Totals = new InfectionsStatsV2Model() }; response.DataLastUpdatedOn = currentPdfData?.LasUpdatedOn ?? 0; response.DataLastUpdatedOnString = currentPdfData?.LasUpdatedOnString; if (currentPdfData?.CurrentDayStats == null) { return(response); } response.Totals = MapToInfectionsStatsV2Model(currentPdfData.CurrentDayStats); var history = currentPdfData.HistoricalData? .Select(x => x.Value) .Select(MapToInfectionsStatsV2Model) .ToList() ?? new List <InfectionsStatsV2Model>(); history.Add(response.Totals); response.History = history.OrderBy(x => x.DateString).Skip(1).ToArray(); return(response); }
private GenderStatsV2Model HandleGetGenderStatsV2(HistoricalPdfStats currentPdfData) { _logger.LogInformation($"Hanling {nameof(GetGenderStatsV2)}"); var response = new GenderStatsV2Model(); if (currentPdfData?.CurrentDayStats != null) { response.DatePublished = currentPdfData.CurrentDayStats.ParsedOn; response.DatePublishedString = currentPdfData.CurrentDayStats.ParsedOnString; var percentageOfChildren = currentPdfData.CurrentDayStats.PercentageOfChildren; var percentageOfMen = currentPdfData.CurrentDayStats.PercentageOfMen; var percentageOfWomen = currentPdfData.CurrentDayStats.PercentageOfWomen; response.PercentageOfChildren = percentageOfChildren; response.PercentageOfMen = percentageOfMen; response.PercentageOfWomen = percentageOfWomen; response.TotalPercentage = percentageOfChildren + percentageOfWomen + percentageOfMen; response.TotalNumber = currentPdfData.CurrentDayStats.NumberInfected; } response.DataLastUpdatedOn = currentPdfData?.LasUpdatedOn ?? 0; response.DataLastUpdatedOnString = currentPdfData?.LasUpdatedOnString; return(response); }
private LastDataUpdateDetailsModel HandleGetLastDataUpdateDetails(HistoricalPdfStats currentPdfData) { _logger.LogInformation($"Hanling {nameof(GetLastDataUpdateDetails)}"); var result = new LastDataUpdateDetailsModel(); result.DataLastUpdatedOn = currentPdfData?.LasUpdatedOn ?? 0; result.DataLastUpdatedOnString = currentPdfData?.LasUpdatedOnString; return(result); }
private CountiesInfectionsModel HandleGetCountiesInfections(HistoricalPdfStats data) { var updateDetails = GetLastUpdatedDates(data, "counties"); return(new CountiesInfectionsModel { Data = data?.CurrentDayStats?.CountyInfectionsNumbers?.Select(x => MapToCountyInfectionModel(x.Key, x.Value)).ToArray() ?? new CountyInfectionModel[0], LastUpdated = updateDetails.lastUpdatedOn, LastUpdatedString = updateDetails.lastUpdatedOnString, Stale = updateDetails.stale }); }
private AverageAgeModel HandleGetAverageAge(HistoricalPdfStats data) { var updateDetails = GetLastUpdatedDates(data, "averageAge"); return(new AverageAgeModel() { LastUpdated = updateDetails.lastUpdatedOn, LastUpdatedString = updateDetails.lastUpdatedOnString, Stale = updateDetails.stale, Value = data?.CurrentDayStats?.AverageAge }); }
private LastDataUpdateDetailsModel HandleGetLastDataUpdateDetails(HistoricalPdfStats data) { _logger.LogInformation($"Hanling {nameof(GetLastDataUpdateDetails)}"); var result = new LastDataUpdateDetailsModel(); var updateDetails = GetLastUpdatedDates(data, ""); result.DataLastUpdatedOn = updateDetails.lastUpdatedOn; result.DataLastUpdatedOnString = updateDetails.lastUpdatedOnString; result.Charts = data?.Charts? .Select(x => new { key = x.Key, value = MapToChartDataDetailsModel(x.Value) }) .ToDictionary(x => x.key, y => y.value) ?? new Dictionary <string, ChartDataDetailsModel>(); return(result); }
private AgeHistogramV2Model HandleGetAgeHistogramV2(HistoricalPdfStats currentPdfData) { _logger.LogInformation($"Hanling {nameof(GetAgeHistogramV2)}"); var response = new AgeHistogramV2Model() { Histogram = new Dictionary <AgeRange, int>() }; if (currentPdfData?.CurrentDayStats != null) { response.DatePublished = currentPdfData.CurrentDayStats.ParsedOn; response.DatePublishedString = currentPdfData.CurrentDayStats.ParsedOnString; response.Histogram = currentPdfData.CurrentDayStats.DistributionByAge; response.Total = currentPdfData.CurrentDayStats.DistributionByAge.Sum(x => x.Value); } response.DataLastUpdatedOn = currentPdfData?.LasUpdatedOn ?? 0; response.DataLastUpdatedOnString = currentPdfData?.LasUpdatedOnString; return(response); }
private DailyStatsV2Model HandleGetDailyStatsV2(HistoricalPdfStats currentData) { _logger.LogInformation($"Hanling {nameof(GetDailyStatsV2)}"); if (currentData?.CurrentDayStats == null) { return(null); } DailyStatsV2Model response = new DailyStatsV2Model() { CurrentDay = MapToDailyStats(currentData.CurrentDayStats) }; if (currentData.HistoricalData != null) { var mappedLists = currentData.HistoricalData.Values .OrderBy(x => x.ParsedOnString) .Select(MapToDailyStats) .ToList(); mappedLists.Insert(0, new DailyStats()); mappedLists.Add(response.CurrentDay); response.History = mappedLists .Select((el, i) => new { index = i, data = el }) .Where(x => x.index > 0) .Select(x => GetDailyStatsDiff(x.data, mappedLists[x.index - 1])) .Skip(1) .ToArray(); } var updateDetails = GetLastUpdatedDates(currentData, "dailyStats"); response.DataLastUpdatedOn = updateDetails.lastUpdatedOn; response.DataLastUpdatedOnString = updateDetails.lastUpdatedOnString; response.Stale = updateDetails.stale; return(response); }
private AgeHistogramV2Model HandleGetAgeHistogramV2(HistoricalPdfStats data) { _logger.LogInformation($"Hanling {nameof(GetAgeHistogramV2)}"); var updateDetails = GetLastUpdatedDates(data, "ageHistogram"); var response = new AgeHistogramV2Model { Histogram = new Dictionary <AgeRange, int>() }; if (data?.CurrentDayStats != null) { response.DatePublished = data.CurrentDayStats.ParsedOn; response.DatePublishedString = data.CurrentDayStats.ParsedOnString; response.Histogram = data.CurrentDayStats.DistributionByAge; response.Total = data.CurrentDayStats.DistributionByAge.Sum(x => x.Value); } response.DataLastUpdatedOn = updateDetails.lastUpdatedOn; response.DataLastUpdatedOnString = updateDetails.lastUpdatedOnString; response.Stale = updateDetails.stale; return(response); }
private (string lastUpdatedOnString, long lastUpdatedOn, bool stale) GetLastUpdatedDates(HistoricalPdfStats data, string chartKey) { if (data?.Charts?.ContainsKey(chartKey) ?? false) { var chartDataDetails = data.Charts[chartKey]; var lastUpdatedOnString = string.IsNullOrEmpty(chartDataDetails.LastUpdatedOn) ? data.LasUpdatedOnString : chartDataDetails.LastUpdatedOn; return(lastUpdatedOnString, -1, chartDataDetails.Stale); } return(data?.LasUpdatedOnString, -1, false); }