protected virtual void CalculateSignificances(string areaCode, TimePeriod timePeriod, IList<CoreDataSet> categoryDataList) { var area = AreaFactory.NewArea(_areasReader, areaCode); var nationalArea = GetNationalArea(area); var indicatorComparisonHelper = new IndicatorComparisonHelper(_indicatorMetadata, _grouping, _groupDataReader, _pholioReader, nationalArea); // Set benchmark data var benchmarkDataProvider = new BenchmarkDataProvider(_groupDataReader); AverageCalculator averageCalculator = null; // Assume parent value is in database CoreDataSet benchmarkData = benchmarkDataProvider.GetBenchmarkData(_grouping, timePeriod, averageCalculator, area); foreach (CoreDataSet coreDataSet in categoryDataList) { coreDataSet.SignificanceAgainstOneBenchmark = (int) indicatorComparisonHelper.GetSignificance(coreDataSet, benchmarkData); } }
protected override void CalculateSignificances(string areaCode, TimePeriod timePeriod, IList<CoreDataSet> categoryDataList) { var area = AreaFactory.NewArea(_areasReader, areaCode); var nationalArea = GetNationalArea(area); var personsData = categoryDataList.FirstOrDefault(x => x.SexId == SexIds.Persons); if (personsData == null && _indicatorMetadata.HasTarget == false) { // Do not calculate significance foreach (var coreDataSet in categoryDataList) { coreDataSet.SignificanceAgainstOneBenchmark = (int)Significance.None; } } else { // Calculate significance (is data for persons or there is a target) var indicatorComparisonHelper = new IndicatorComparisonHelper(_indicatorMetadata, _grouping, _groupDataReader, _pholioReader, nationalArea); foreach (var coreDataSet in categoryDataList) { coreDataSet.SignificanceAgainstOneBenchmark = indicatorComparisonHelper.GetSignificance(coreDataSet, personsData); } } }