public void Process(CaseReportReceived @event) { var caseReport = new CaseReport(@event.CaseReportId); caseReport.DataCollectorId = @event.DataCollectorId; caseReport.HealthRiskId = @event.HealthRiskId; caseReport.NumberOfFemalesUnder5 = @event.Age <= 5 && (Sex)@event.Sex == Sex.Female ? 1 : 0; caseReport.NumberOfFemalesOver5 = @event.Age > 5 && (Sex)@event.Sex == Sex.Female ? 1 : 0; caseReport.NumberOfMalesUnder5 = @event.Age <= 5 && (Sex)@event.Sex == Sex.Male ? 1 : 0; caseReport.NumberOfMalesOver5 = @event.Age > 5 && (Sex)@event.Sex == Sex.Male ? 1 : 0; caseReport.Location = new Location(@event.Latitude, @event.Longitude); _caseReports.Save(caseReport); }
public void Process(CaseReported @event) { var caseReport = _caseReports.GetById(@event.Id); if (caseReport == null) { caseReport = new CaseReport { Id = @event.Id, DataCollectorId = @event.DataCollectorId, HealthRiskId = @event.HealthRiskId, Location = @event.Location, SubmissionTimestamp = @event.CaseOccured }; } else { caseReport.Id = @event.Id; caseReport.DataCollectorId = @event.DataCollectorId; caseReport.HealthRiskId = @event.HealthRiskId; caseReport.Location = @event.Location; caseReport.SubmissionTimestamp = @event.CaseOccured; } _caseReports.Save(caseReport); var disease = _healthRisks.GetById(caseReport.HealthRiskId) ?? new HealthRisk { Id = @event.HealthRiskId, ThresholdTimePeriodInDays = 7, ThresholdNumberOfCases = 3 }; var latestReports = _caseReports.GetCaseReportsAfterDate( DateTime.UtcNow.Subtract(TimeSpan.FromDays(disease.ThresholdTimePeriodInDays)), caseReport.HealthRiskId); if (latestReports.Count > disease.ThresholdNumberOfCases) { var alert = _alerts.Get(caseReport.HealthRiskId, caseReport.Location); if (alert == null) { alert = new Alert { Id = Guid.NewGuid(), HealthRiskId = caseReport.HealthRiskId, Location = caseReport.Location, }; } alert.CaseReports.Add(caseReport); _alerts.Save(alert); // Todo: Temporary fix - we're not supposed to do this, awaiting the new Policy building block in doLittle to be ready var stream = new UncommittedEventStream(null); stream.Append(new AlertRaised(), EventSourceVersion.Zero.NextCommit()); _uncommittedEventStreamCoordinator.Commit(TransactionCorrelationId.New(), stream); _feedbackService.SendFeedbackToDataCollecorsAndVerifiers(latestReports); } }
public void Process(CaseReportReceived @event) { var caseReport = new CaseReport(@event.CaseReportId); caseReport.DataCollectorId = @event.DataCollectorId; caseReport.HealthRiskId = @event.HealthRiskId; caseReport.NumberOfFemalesUnder5 = @event.NumberOfFemalesUnder5; caseReport.NumberOfFemalesOver5 = @event.NumberOfFemalesOver5; caseReport.NumberOfMalesUnder5 = @event.NumberOfMalesUnder5; caseReport.NumberOfMalesOver5 = @event.NumberOfMalesOver5; caseReport.Location = new Location(@event.Latitude, @event.Longitude); caseReport.Timestamp = @event.Timestamp; _caseReports.Save(caseReport); }
public async Task Process(CaseReportReceived @event) { var caseReport = new CaseReport(@event.CaseReportId) { DataCollectorId = @event.DataCollectorId, HealthRiskId = @event.HealthRiskId, NumberOfFemalesUnder5 = @event.NumberOfFemalesUnder5, NumberOfFemalesOver5 = @event.NumberOfFemalesOver5, NumberOfMalesUnder5 = @event.NumberOfMalesUnder5, NumberOfMalesOver5 = @event.NumberOfMalesOver5, Location = new Location(@event.Latitude, @event.Longitude), Timestamp = @event.Timestamp }; await _caseReports.Save(caseReport); }
public async Task Process(CaseReportReceived @event) { // Save CaseReport in the CaseReports DB var caseReport = new CaseReport(@event.CaseReportId) { DataCollectorId = @event.DataCollectorId, HealthRiskId = @event.HealthRiskId, NumberOfFemalesAges0To4 = @event.NumberOfFemalesAges0To4, NumberOfFemalesAgedOver4 = @event.NumberOfFemalesAgedOver4, NumberOfMalesAges0To4 = @event.NumberOfMalesAges0To4, NumberOfMalesAgedOver4 = @event.NumberOfMalesAgedOver4, Location = new Location(@event.Latitude, @event.Longitude), Timestamp = @event.Timestamp }; await _caseReports.Save(caseReport); }
public void Process(CaseReportReceived @event) { // Save CaseReport in the CaseReports DB var caseReport = new CaseReport(@event.CaseReportId) { DataCollectorId = @event.DataCollectorId, HealthRiskId = @event.HealthRiskId, NumberOfFemalesUnder5 = @event.NumberOfFemalesUnder5, NumberOfFemalesAged5AndOlder = @event.NumberOfFemalesAged5AndOlder, NumberOfMalesUnder5 = @event.NumberOfMalesUnder5, NumberOfMalesAged5AndOlder = @event.NumberOfMalesAged5AndOlder, Location = new Location(@event.Latitude, @event.Longitude), Timestamp = @event.Timestamp, Message = @event.Message }; _caseReports.Save(caseReport); }