private DateTime?EstimateCountyRiskLevelDate(CountyRiskLevel countyRiskLevel, decimal?criticalDaysMovingCasesPerOneHundredThousandAverage, decimal?criticalDaysMovingRateChange) { bool areCasesRising = criticalDaysMovingRateChange >= 0; DateTime countyRiskLevelDate = DateTime.Today; if (areCasesRising) { if (countyRiskLevel.IsPassedRiskLevel || countyRiskLevel.IsCurrentRiskLevel) { countyRiskLevelDate = EstimateCountyRiskLevelDateRisingCases(criticalDaysMovingCasesPerOneHundredThousandAverage, criticalDaysMovingRateChange, countyRiskLevel.RiskLelvelCasesMin); } //If cases are rising and this is a less restrictive level, return null if (countyRiskLevel.IsFutureRiskLevel) { return(null); } } else { countyRiskLevelDate = EstimateCountyRiskLevelDateDecliningCases(criticalDaysMovingCasesPerOneHundredThousandAverage, criticalDaysMovingRateChange, countyRiskLevel.RiskLelvelCasesMax); } return(countyRiskLevelDate); }
private void PopulateRiskLevel(CountyRiskLevel countyRiskLevel, County selectedCounty, DateTime latestUpdateDate) { if (selectedCounty.CriticalDaysMovingCasesPerOneHundredThousandAverage >= countyRiskLevel.RiskLelvelCasesMin && selectedCounty.CriticalDaysMovingCasesPerOneHundredThousandAverage <= countyRiskLevel.RiskLelvelCasesMax) { countyRiskLevel.IsCurrentRiskLevel = true; } if (selectedCounty.CriticalDaysMovingCasesPerOneHundredThousandAverage < countyRiskLevel.RiskLelvelCasesMin) { countyRiskLevel.IsPassedRiskLevel = true; } if (selectedCounty.CriticalDaysMovingCasesPerOneHundredThousandAverage > countyRiskLevel.RiskLelvelCasesMax) { countyRiskLevel.IsFutureRiskLevel = true; } DateTime?riskLevelDate = EstimateCountyRiskLevelDate(countyRiskLevel, selectedCounty.CriticalDaysMovingCasesPerOneHundredThousandAverage, selectedCounty.CriticalDaysMovingCasesRateChange); DateTime?zeroAvailableICUBedsDate = EstimateZeroAvailableICUBedsDate(selectedCounty.CriticalDaysMovingAvailableICUBedsAverage, selectedCounty.CriticalDaysMovingAvailableICUBedsRateChange); countyRiskLevel.EstimateRiskLevelDate = riskLevelDate; string riskLevelDateDisplay = riskLevelDate != null ? $"{riskLevelDate:MMMM d, yyyy}" : selectedCounty.CriticalDaysMovingCasesRateChange >= 0 ? "-" : "N/A"; countyRiskLevel.EstimateRiskLevelDateDisplay = riskLevelDateDisplay; countyRiskLevel.EstimateRiskLevelDateQualification = riskLevelDate; countyRiskLevel.EstimateRiskLevelDateQualificationDisplay = riskLevelDateDisplay; countyRiskLevel.EstimateZeroAvailableICUBedsDate = zeroAvailableICUBedsDate; string zeroAvailableICUBedsDateDisplay = zeroAvailableICUBedsDate != null ? $"{zeroAvailableICUBedsDate:MMMM d, yyyy}" : "N/A"; countyRiskLevel.EstimateZeroAvailableICUBedsDateDisplay = zeroAvailableICUBedsDateDisplay; }