コード例 #1
0
        public async Task ResolveLabelsOnReportAdded_WhenOneReportGroupInRange_ShouldChangeTheLabelOfAddedPoint()
        {
            //arrange
            _testData.WhenOneReportGroupInRange.GenerateData().AddToDbContext();
            var report = _testData.WhenOneReportGroupInRange.EntityData.Reports.First();

            //act
            await _reportLabelingService.ResolveLabelsOnReportAdded(report, report.ProjectHealthRisk);

            //assert
            report.ReportGroupLabel.ShouldBe(_testData.WhenOneReportGroupInRange.AdditionalData.LabelOfNewPointAfterAdding);
        }
コード例 #2
0
ファイル: AlertService.cs プロジェクト: KevinTss/nyss
        public async Task <Alert> ReportAdded(Report report)
        {
            var dataCollectorIsNotHuman    = report.DataCollector.DataCollectorType != DataCollectorType.Human;
            var reportTypeIsAggregateOrDcp = report.ReportType == ReportType.Aggregate || report.ReportType == ReportType.DataCollectionPoint;
            var healthRiskTypeIsActivity   = report.ProjectHealthRisk.HealthRisk.HealthRiskType == HealthRiskType.Activity;

            if (report.IsTraining || dataCollectorIsNotHuman || reportTypeIsAggregateOrDcp || healthRiskTypeIsActivity)
            {
                return(null);
            }

            var projectHealthRisk = await _nyssContext.ProjectHealthRisks
                                    .Where(phr => phr == report.ProjectHealthRisk)
                                    .Include(phr => phr.AlertRule)
                                    .Include(phr => phr.HealthRisk)
                                    .SingleAsync();

            if (projectHealthRisk.HealthRisk.HealthRiskType == HealthRiskType.Activity)
            {
                return(null);
            }

            await _reportLabelingService.ResolveLabelsOnReportAdded(report, projectHealthRisk);

            await _nyssContext.SaveChangesAsync();

            var triggeredAlert = await HandleAlerts(report);

            await _nyssContext.SaveChangesAsync();

            return(triggeredAlert);
        }