Esempio n. 1
0
        public void SendFeedbackToDataCollecorsAndVerifiers(IEnumerable <CaseReport> latestReports)
        {
            var dataCollectors = _dataCollectors.Get(latestReports.Select(o => o.DataCollectorId).ToArray());
            var collectors     = dataCollectors as DataCollector[] ?? dataCollectors.ToArray();
            var dataVerifiers  = collectors.GroupBy(o => o.DataVerifier.UserId).Select(o => o.First().DataVerifier).ToArray();
            var healthRisk     = latestReports.First().HealthRiskId;

            // send sms to all data verifiers
            foreach (DataVerifier dataVerifier in dataVerifiers)
            {
                string text = _messageTemplateService.ComposeMessage(EMessageTemplateNames.AlertRaisedFeedbackToDataVerifiers, healthRisk);
                _smsSendingService.SendSMS(new [] { dataVerifier.Phone }, "");
                ApplyEvent(new SmsSentEvent()
                {
                    RecipientName = dataVerifier.Name, RecipientPhoneNumber = dataVerifier.Phone, SmsText = text
                });
            }

            // send sms to all data collecors
            foreach (DataCollector dataCollector in collectors)
            {
                string text = _messageTemplateService.ComposeMessage(EMessageTemplateNames.AlertRaisedFeedbackToDataCollectors, healthRisk);
                _smsSendingService.SendSMS(new[] { dataCollector.Phone }, "");
                ApplyEvent(new SmsSentEvent()
                {
                    RecipientName = dataCollector.Name, RecipientPhoneNumber = dataCollector.Phone, SmsText = text
                });
            }
        }