Beispiel #1
0
 public void Process(AlertOpened @event)
 {
     foreach (var reportId in @event.Reports)
     {
         var report = _availableReports.GetById(reportId);
         if (report != null)
         {
             _availableReports.Delete(report);
         }
     }
 }
Beispiel #2
0
        public void Process(AlertOpened @event)
        {
            var rule = _repositoryForAlertRule.GetById(@event.AlertRuleId);

            _repositoryForAlert.Insert(new Alert()
            {
                Id             = @event.AlertId,
                AlertNumber    = @event.AlertNumber,
                AlertRuleId    = @event.AlertRuleId,
                HealthRiskName = rule.HealthRiskName
            });
        }
Beispiel #3
0
        public void Process(AlertOpened @event)
        {
            var rule = _rules.GetById(@event.AlertRuleId);
            var item = new OpenAlert
            {
                Id          = rule.HealthRiskId,
                AlertNumber = @event.AlertNumber,
                AlertId     = @event.AlertId
            };

            _items.Insert(item);
        }
Beispiel #4
0
        public void Process(AlertOpened @event)
        {
            List <DataOwner> owners = _dataOwnersRepository.Query.ToList();

            var caseItem = _casesRepository.GetById(@event.Cases[0]);

            foreach (var owner in owners)
            {
                string message = $"Dear {owner.Name},\nAlert opened on health risk {caseItem.HealthRiskNumber} with {@event.Cases.Length} case(s). Please follow up using the Reporting module in CBS.";
                _mailSender.Send(owner.Email, $"CBS Alert opened", message);
            }
        }
Beispiel #5
0
        public void Process(AlertOpened @event)
        {
            var rule = _rules.GetById(@event.AlertRuleId);

            var item = new AlertOverview
            {
                AlertNumber      = @event.AlertNumber,
                HealthRiskNumber = rule.HealthRiskId,
                HealthRiskName   = rule.AlertRuleName,
                OpenedAt         = DateTimeOffset.UtcNow,
                NumberOfReports  = @event.Reports.Count(),
                Status           = AlertStatus.Open
            };

            _items.Insert(item);
        }
Beispiel #6
0
        public void Process(AlertOpened @event)
        {
            var owners                = _dataOwnersRepository.Query.ToList();
            var items                 = @event.Reports.Select(c => _reportsRepository.GetById(c));
            var item                  = items.First();
            var orderedCollectors     = items.GroupBy(c => c.DataCollectorId).OrderByDescending(g => g.Count());
            var dataCollectors        = orderedCollectors.Select(g => new { incidents = g.Count(), collector = _dataCollectorRepository.GetById(g.Key) });
            var collectorsDescription = dataCollectors.Select(c => $"{c.collector.FullName}, phone:{string.Join(",", c.collector.PhoneNumbers)}, number of cases: {c.incidents} ");

            foreach (var owner in owners)
            {
                var message = $"Dear {owner.Name},\nAlert opened on health risk {item.HealthRiskNumber} with {@event.Reports.Length} case(s). Please follow up using the Reporting module in CBS.\n";
                message += collectorsDescription.Select(d => $"{d}\n");
                _mailSender.Send(owner.Email, $"CBS Alert opened", message);
            }
        }
Beispiel #7
0
 private void On(AlertOpened @event)
 {
     numberOfAlertsOpened++;
 }