public void Process(TrainingReportConvertedToLive notification, EventSourceId caseReportId) { var transaction = _commandContextManager.EstablishForCommand(new Dolittle.Runtime.Commands.CommandRequest(Guid.NewGuid(), Guid.Empty, 0, new Dictionary <string, object>())); var report = _trainingReports.GetById((CaseReportId)caseReportId.Value); var aggregateRoot = _caseReportingRepository.Get(caseReportId); var reportFromKnownDataCollector = report.DataCollectorId != null && report.DataCollectorId != CaseReportId.NotSet; var validReport = report.HealthRiskId != null && report.HealthRiskId != HealthRiskId.NotSet; if (reportFromKnownDataCollector && validReport) { aggregateRoot.Report( report.DataCollectorId.Value, report.HealthRiskId.Value, report.Origin, report.NumberOfMalesUnder5, report.NumberOfMalesAged5AndOlder, report.NumberOfFemalesUnder5, report.NumberOfFemalesAged5AndOlder, report.Location.Longitude, report.Location.Latitude, report.Timestamp, report.Message ); } else if (reportFromKnownDataCollector && !validReport) { aggregateRoot.ReportInvalidReport( report.DataCollectorId.Value, report.Origin, report.Message, report.Location.Longitude, report.Location.Latitude, report.ParsingErrorMessage, report.Timestamp ); } else if (!reportFromKnownDataCollector && validReport) { aggregateRoot.ReportFromUnknownDataCollector( report.Origin, report.HealthRiskId.Value, report.NumberOfMalesUnder5, report.NumberOfMalesAged5AndOlder, report.NumberOfFemalesUnder5, report.NumberOfFemalesAged5AndOlder, report.Timestamp, report.Message ); } else if (!reportFromKnownDataCollector && !validReport) { aggregateRoot.ReportInvalidReportFromUnknownDataCollector( report.Origin, report.Message, report.ParsingErrorMessage, report.Timestamp ); } transaction.Commit(); }
public void Process(TrainingReportConvertedToLive @event, EventSourceId caseReportId) { _caseReports.Delete(_caseReports.GetById(caseReportId.Value)); }