public void Process(CaseReportReceived @event) { var dataCollector = _dataCollectors.GetById(@event.DataCollectorId); if (dataCollector.InTraining) { return; // don't include training data } // Each day contains a health risk dictionary // Each healthrisk in the healthrisk dictionary contains two collections of case-reports from 7 and 30 days var totalCases = @event.NumberOfFemalesAged5AndOlder + @event.NumberOfFemalesUnder5 + @event.NumberOfMalesAged5AndOlder + @event.NumberOfMalesUnder5; var locationForCaseReport = new Location(@event.Latitude, @event.Longitude); var healthRisk = _healthRisks.GetById(@event.HealthRiskId); var dayOfCaseReport = Day.From(@event.Timestamp); var timeLimit4Weeks = dayOfCaseReport + 28; var timeLimit7Days = dayOfCaseReport + 7; // Insert or update casereport depending on if it is in the list of not for (Day day = dayOfCaseReport; day < timeLimit4Weeks; day++) { var caseReport = new CaseReportForMap() { HealthRiskName = healthRisk.Name, NumberOfPeople = totalCases, Location = locationForCaseReport }; if (day < timeLimit7Days) { UpdateCaseReportLast7Days(caseReport, day, healthRisk.HealthRiskNumber); } UpdateCaseReportLast4Weeks(caseReport, day, healthRisk.HealthRiskNumber); } }
public void Process(CaseReportReceived @event) { var dataCollector = _dataCollectors.GetById(@event.DataCollectorId); dataCollector.LastReportRecievedAt = @event.Timestamp; _dataCollectors.Save(dataCollector); }
public void Process(CaseReportReceived @event) { // Each day contains a health risk dictionary // Each healthrisk in the healthrisk dictionary contains two collections of case-reports from 7 and 30 days var totalCases = @event.NumberOfFemalesAged5AndOlder + @event.NumberOfFemalesUnder5 + @event.NumberOfMalesAged5AndOlder + @event.NumberOfMalesUnder5; var locationForCaseReport = new Location(@event.Latitude, @event.Longitude); var healthRiskId = @event.HealthRiskId; var healthRiskName = _healthRisks.GetById(healthRiskId).Name; var dayOfCaseReport = Day.From(@event.Timestamp); var timeLimit30Days = dayOfCaseReport + 30; var timeLimit7Days = dayOfCaseReport + 7; // Insert or update casereport depending on if it is in the list of not for (Day day = dayOfCaseReport; day < timeLimit30Days; day++) { var caseReport = new CaseReportForMap() { NumberOfPeople = totalCases, Location = locationForCaseReport }; if (day < timeLimit7Days) { UpdateCaseReportLast7Days(caseReport, day, healthRiskName); } UpdateCaseReportLast30Days(caseReport, day, healthRiskName); } }
public void Process(CaseReportReceived @event, EventSourceId caseReportId) { var dataCollector = _dataCollectors.GetById(@event.DataCollectorId); var healthRisk = _healthRisks.GetById(@event.HealthRiskId); var caseReport = new CaseReportForListing(caseReportId.Value) { Status = CaseReportStatus.Success, Message = @event.Message, DataCollectorId = dataCollector.Id, DataCollectorDisplayName = dataCollector.DisplayName, DataCollectorDistrict = dataCollector.District, DataCollectorRegion = dataCollector.Region, DataCollectorVillage = dataCollector.Village, Location = dataCollector.Location, Origin = @event.Origin, HealthRiskId = healthRisk.Id, HealthRisk = healthRisk.Name, NumberOfMalesUnder5 = @event.NumberOfMalesUnder5, NumberOfMalesAged5AndOlder = @event.NumberOfMalesAged5AndOlder, NumberOfFemalesUnder5 = @event.NumberOfFemalesUnder5, NumberOfFemalesAged5AndOlder = @event.NumberOfFemalesAged5AndOlder, Timestamp = @event.Timestamp, }; _caseReports.Insert(caseReport); }
public void Process(CaseReportReceived @event) { var today = Day.From(@event.Timestamp); for (var day = today; day < today + 7; day++) { var totals = _caseReportTotalsRepository.GetById(day); if (totals != null) { totals.FemalesUnder5 += @event.NumberOfFemalesUnder5; totals.MalesUnder5 += @event.NumberOfMalesUnder5; totals.FemalesOver5 += @event.NumberOfFemalesAged5AndOlder; totals.MalesOver5 += @event.NumberOfMalesAged5AndOlder; _caseReportTotalsRepository.Update(totals); } else { totals = new CaseReportTotals() { Id = day, FemalesUnder5 = @event.NumberOfFemalesUnder5, MalesUnder5 = @event.NumberOfMalesUnder5, FemalesOver5 = @event.NumberOfFemalesAged5AndOlder, MalesOver5 = @event.NumberOfMalesAged5AndOlder }; _caseReportTotalsRepository.Insert(totals); } } }
public void Process(CaseReportReceived @event) { var transaction = _commandContextManager.EstablishForCommand( new Dolittle.Runtime.Commands.CommandRequest( Guid.NewGuid(), Guid.NewGuid(), 1, new Dictionary <string, object>())); var root = _caseReportAggregateRootRepository.Get(@event.CaseReportId); var data = new CaseReportData { CaseReportId = @event.CaseReportId, DataCollectorId = @event.DataCollectorId, HealthRiskId = @event.HealthRiskId, Latitude = @event.Latitude, Longitude = @event.Longitude, Timestamp = @event.Timestamp, NumberOfMalesUnder5 = @event.NumberOfMalesUnder5, NumberOfMalesAged5AndOlder = @event.NumberOfMalesAged5AndOlder, NumberOfFemalesUnder5 = @event.NumberOfFemalesUnder5, NumberOfFemalesAged5AndOlder = @event.NumberOfFemalesAged5AndOlder, Message = @event.Message, PhoneNumber = @event.Origin }; root.ProcessReport(data); transaction.Commit(); }
public void Process(CaseReportReceived @event) { var healthRiskName = _healthRisks.GetById(@event.HealthRiskId)?.Name ?? "Unknown"; var recieved = Day.From(@event.Timestamp); var numberOfCaseReports = @event.NumberOfFemalesUnder5 + @event.NumberOfFemalesAged5AndOlder + @event.NumberOfMalesUnder5 + @event.NumberOfMalesAged5AndOlder; for (var days = 0; days < 7; days++) { CreateOrUpdateCaseReports(recieved + days, @event.HealthRiskId, _ => { _.HealthRiskName = healthRiskName; _.Days0to6 += numberOfCaseReports; }); } for (var days = 7; days < 14; days++) { CreateOrUpdateCaseReports(recieved + days, @event.HealthRiskId, _ => { _.HealthRiskName = healthRiskName; _.Days7to13 += numberOfCaseReports; }); } for (var days = 14; days < 21; days++) { CreateOrUpdateCaseReports(recieved + days, @event.HealthRiskId, _ => { _.HealthRiskName = healthRiskName; _.Days14to20 += numberOfCaseReports; }); } for (var days = 21; days < 28; days++) { CreateOrUpdateCaseReports(recieved + days, @event.HealthRiskId, _ => { _.HealthRiskName = healthRiskName; _.Days21to27 += numberOfCaseReports; }); } }
public void Process(CaseReportReceived @event) { var dataCollector = _dataCollectors.GetById(@event.DataCollectorId); var healthRisk = _healthRisks.GetById(@event.HealthRiskId); var caseReport = new CaseReportForListing(@event.CaseReportId) { Status = CaseReportStatus.Success, DataCollectorId = @event.DataCollectorId, DataCollectorDisplayName = dataCollector.DisplayName, DataCollectorRegion = dataCollector.Region, DataCollectorDistrict = dataCollector.District, DataCollectorVillage = dataCollector.Village, HealthRiskId = @event.HealthRiskId, HealthRisk = healthRisk.Name, NumberOfFemalesUnder5 = @event.NumberOfFemalesUnder5, NumberOfFemalesAged5AndOlder = @event.NumberOfFemalesAged5AndOlder, NumberOfMalesUnder5 = @event.NumberOfMalesUnder5, NumberOfMalesAged5AndOlder = @event.NumberOfMalesAged5AndOlder, Location = new Location(@event.Latitude, @event.Longitude), Timestamp = @event.Timestamp, Origin = @event.Origin, Message = @event.Message, ParsingErrorMessage = new List <string>() }; _caseReports.Save(caseReport); }
public void Process(CaseReportReceived @event) { var caseReport = new CaseReport(@event.DataCollectorId, @event.HealthRiskId, @event.Origin, @event.Message, @event.NumberOfMalesUnder5, @event.NumberOfMalesAged5AndOlder, @event.NumberOfFemalesUnder5, @event.NumberOfFemalesAged5AndOlder, @event.Longitude, @event.Latitude, @event.Timestamp); _caseReportRepository.Insert(caseReport); }
public void Process(CaseReportReceived @event) { var res = _dataCollectors.UpdateOne( Builders <DataCollector> .Filter.Where(d => d.DataCollectorId == @event.DataCollectorId), Builders <DataCollector> .Update.Set(d => d.LastReportRecievedAt, @event.Timestamp)); if (res.IsModifiedCountAvailable && res.MatchedCount < 1) { throw new Exception("Data collector with id " + @event.DataCollectorId + " was not found"); } }
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(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 void Process(CaseReportReceived @event) { var alertCount = @event.NumberOfFemalesAged5AndOlder + @event.NumberOfFemalesUnder5 + @event.NumberOfMalesAged5AndOlder + @event.NumberOfMalesUnder5; var weekNumber = GetWeekFromDate(@event.Timestamp.DateTime); var nationalSociety = new AlertsByWeek() { Year = (short)@event.Timestamp.DateTime.Year, Week = (short)weekNumber, AlertCount = alertCount }; _repository.Insert(nationalSociety); }
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) { 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.Update(caseReport); }
public void Process(CaseReportReceived @event) { var caseReport = new CaseReport { NumberOfMalesAged5AndOlder = @event.NumberOfMalesAged5AndOlder, NumberOfFemalesAged5AndOlder = @event.NumberOfFemalesAged5AndOlder, NumberOfFemalesUnder5 = @event.NumberOfFemalesUnder5, NumberOfMalesUnder5 = @event.NumberOfMalesUnder5, Timestamp = @event.Timestamp, HealthRisk = @event.HealthRiskId, Longitude = @event.Longitude, Latitude = @event.Latitude }; this.repository.Insert(caseReport); this.calculators.ForEach(c => c.Calculate(caseReport)); }
public void Process(CaseReportReceived @event) { var dataCollector = _dataCollectors.GetById(@event.DataCollectorId); var healthRisk = _healthRisks.GetById(@event.HealthRiskId); _caseReports.SaveCaseReport( @event.CaseReportId, dataCollector, healthRisk, @event.Message, @event.Origin, @event.NumberOfMalesUnder5, @event.NumberOfMalesAged5AndOlder, @event.NumberOfFemalesUnder5, @event.NumberOfFemalesAged5AndOlder, @event.Timestamp); }
public void Process(CaseReportReceived @event, EventSourceId caseReportId) { // Insert CaseReports var caseReport = new CaseReport(caseReportId.Value, @event.DataCollectorId, @event.HealthRiskId, @event.Origin, @event.Message, @event.NumberOfMalesUnder5, @event.NumberOfMalesAged5AndOlder, @event.NumberOfFemalesUnder5, @event.NumberOfFemalesAged5AndOlder, @event.Longitude, @event.Latitude, @event.Timestamp); _caseReportRepository.Insert(caseReport); var healthRisk = _healthRisks.GetById(caseReport.HealthRiskId); var dataCollector = _dataCollectors.GetById(@event.DataCollectorId); var district = _districts.Query.FirstOrDefault(_ => _.Name == dataCollector.District); InsertPerHealthRiskAndRegionForComing4Weeks(caseReport, healthRisk, district); UpdateDataCollectorLastActive(dataCollector, caseReport); InsertPerHealthRiskAndRegionForDay(caseReport, healthRisk, district); }
public void Process(CaseReportReceived @event) { var root = _caseReportAggregateRootRepository.Get(@event.CaseReportId); var data = new CaseReportData { CaseReportId = @event.CaseReportId, DataCollectorId = @event.DataCollectorId, HealthRiskId = @event.HealthRiskId, Latitude = @event.Latitude, Longitude = @event.Longitude, Timestamp = @event.Timestamp, NumberOfMalesUnder5 = @event.NumberOfMalesUnder5, NumberOfMalesAged5AndOlder = @event.NumberOfMalesAged5AndOlder, NumberOfFemalesUnder5 = @event.NumberOfFemalesUnder5, NumberOfFemalesAged5AndOlder = @event.NumberOfFemalesAged5AndOlder }; root.ProcessReport(data); }
public async Task Process(CaseReportReceived @event) { var dataCollector = _dataCollectors.GetById(@event.DataCollectorId); var healthRisk = _healthRisks.GetById(@event.HealthRiskId); var caseReport = new CaseReportForListing(@event.CaseReportId) { Status = CaseReportStatus.Success, DataCollectorId = @event.DataCollectorId, DataCollectorDisplayName = dataCollector.DisplayName, HealthRiskId = @event.HealthRiskId, HealthRisk = healthRisk.Name, 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) { var dataCollector = _dataCollectors.GetById(@event.DataCollectorId); if (dataCollector.InTraining) { return; // don't inlcude training data } var today = Day.From(@event.Timestamp); for (var day = today; day < today + 7; day++) { var totals = _caseReportTotalsRepository.GetById(day); if (totals != null) { totals.FemalesUnder5 += @event.NumberOfFemalesUnder5; totals.MalesUnder5 += @event.NumberOfMalesUnder5; totals.FemalesOver5 += @event.NumberOfFemalesAged5AndOlder; totals.MalesOver5 += @event.NumberOfMalesAged5AndOlder; _caseReportTotalsRepository.Update(totals); } else { totals = new CaseReportTotals() { Id = day, FemalesUnder5 = @event.NumberOfFemalesUnder5, MalesUnder5 = @event.NumberOfMalesUnder5, FemalesOver5 = @event.NumberOfFemalesAged5AndOlder, MalesOver5 = @event.NumberOfMalesAged5AndOlder }; _caseReportTotalsRepository.Insert(totals); } } }
public void Process(CaseReportReceived @event) { // Insert CaseReports var caseReport = new CaseReport(@event.DataCollectorId, @event.HealthRiskId, @event.Origin, @event.Message, @event.NumberOfMalesUnder5, @event.NumberOfMalesAged5AndOlder, @event.NumberOfFemalesUnder5, @event.NumberOfFemalesAged5AndOlder, @event.Longitude, @event.Latitude, @event.Timestamp); _caseReportRepository.Insert(caseReport); var healthRisk = _healthRisks.GetById(caseReport.HealthRiskId); var dataCollector = _dataCollectors.GetById(caseReport.DataCollectorId); // Insert by health risk and region var today = Day.From(caseReport.Timestamp); var totalCases = caseReport.NumberOfMalesUnder5 + caseReport.NumberOfMalesAged5AndOlder + caseReport.NumberOfFemalesUnder5 + caseReport.NumberOfFemalesAged5AndOlder; Region region = dataCollector.Region; for (var day = today; day < today + 7; day++) { var dayReport = _caseReportsPerRegionLast7DaysRepository.GetById(day); if (dayReport != null) { var healthRiskForDay = dayReport.HealthRisks.FirstOrDefault(d => d.Id == caseReport.HealthRiskId); if (healthRiskForDay != null) { var regionForHealthRisk = healthRiskForDay.Regions.FirstOrDefault(r => r.Id == region); if (regionForHealthRisk != null) { regionForHealthRisk.NumCases += totalCases; } else { healthRiskForDay.Regions.Add(AddRegionWithCases(region, totalCases)); } } else { dayReport.HealthRisks.Add(new HealthRisksInRegionsLast7Days() { Id = caseReport.HealthRiskId, HealthRiskName = healthRisk.Name, Regions = new [] { AddRegionWithCases(region, totalCases) } }); } _caseReportsPerRegionLast7DaysRepository.Update(dayReport); } else { dayReport = new CaseReportsPerRegionLast7Days() { Id = day, HealthRisks = new [] { new HealthRisksInRegionsLast7Days() { Id = caseReport.HealthRiskId, HealthRiskName = healthRisk.Name, Regions = new [] { AddRegionWithCases(region, totalCases) } } } }; _caseReportsPerRegionLast7DaysRepository.Insert(dayReport); } } ; }
public void Process(CaseReportReceived @event) { // TODO: // _dataCollectors.Update(d => d.Id == (DataCollectorId)@event.DataCollectorId, // Builders<DataCollector>.Update.Set(d => d.LastReportRecievedAt, @event.Timestamp)); }