Beispiel #1
0
        public void Process(TrainingReportReceived @event, EventSourceId caseReportId)
        {
            var dataCollector = _dataCollectors.GetById(@event.DataCollectorId);
            var healthRisk    = _healthRisks.GetById(@event.HealthRiskId);

            var report = new TrainingReport(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,
            };

            _trainingReports.Insert(report);
        }
Beispiel #2
0
 public void Process(MyEvent @event)
 {
     _repository.Insert(new MyReadModel {
         Id         = (Guid)@event.EventSourceId,
         Identifier = (Guid)@event.EventSourceId
     });
 }
Beispiel #3
0
        public void Process(DefaultAutomaticReplyKeyMessageDefined @event)
        {
            var message = _defaultKeyMessages.GetById(@event.Id);

            if (message == null)
            {
                message = new DefaultAutomaticReplyKeyMessage(@event.Id)
                {
                    Type         = (AutomaticReplyKeyMessageType)@event.Type,
                    Language     = @event.Language,
                    Message      = @event.Message,
                    HealthRiskId = @event.HealthRiskId
                };

                _defaultKeyMessages.Insert(message);
            }
            else
            {
                message.Type         = (AutomaticReplyKeyMessageType)@event.Type;
                message.Language     = @event.Language;
                message.Message      = @event.Message;
                message.HealthRiskId = @event.HealthRiskId;

                _defaultKeyMessages.Update(message);
            }
        }
Beispiel #4
0
        public void Process(ItemCreated evt)
        {
            var allLists = _repositoryForAvailableLists.GetById(default(Guid));

            if (allLists != null)
            {
                if (!allLists.Lists.Any(list => list == evt.ListId))
                {
                    allLists.Lists.Add(evt.ListId);
                    _repositoryForAvailableLists.Update(allLists);
                }
            }
            else
            {
                allLists = new AvailableLists
                {
                    Id    = default(Guid),
                    Lists = new ListId[]
                    {
                        evt.ListId
                    }
                };

                _repositoryForAvailableLists.Insert(allLists);
            }
        }
Beispiel #5
0
        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);
                }
            }
        }
Beispiel #6
0
        void CreateOrUpdateCaseReports(Day day, HealthRiskId id, Action <CaseReportsLast4WeeksForHealthRisk> update)
        {
            var aggregatedReports = _caseReportsLastWeeksPerHealthRisk.GetById(day);

            if (aggregatedReports == null)
            {
                aggregatedReports = new CaseReportsLast4WeeksPerHealthRisk
                {
                    Id = day,
                    CaseReportsPerHealthRisk = new Dictionary <HealthRiskId, CaseReportsLast4WeeksForHealthRisk>()
                };
                _caseReportsLastWeeksPerHealthRisk.Insert(aggregatedReports);
            }

            if (!aggregatedReports.CaseReportsPerHealthRisk.ContainsKey(id))
            {
                aggregatedReports.CaseReportsPerHealthRisk[id] = new CaseReportsLast4WeeksForHealthRisk
                {
                    Days0to6   = 0,
                    Days7to13  = 0,
                    Days14to20 = 0,
                    Days21to27 = 0
                };
            }

            var aggregatedReportsForHealthRisk = aggregatedReports.CaseReportsPerHealthRisk[id];

            update(aggregatedReportsForHealthRisk);

            _caseReportsLastWeeksPerHealthRisk.Update(aggregatedReports);
        }
Beispiel #7
0
        public void Setup()
        {
            _repository.Insert(new AccountOverview
            {
                Id            = Guid.NewGuid(),
                AccountNumber = "123456",
                Balance       = 1000
            });

            _repository.Insert(new AccountOverview
            {
                Id            = Guid.NewGuid(),
                AccountNumber = "654321",
                Balance       = 5000
            });
        }
        public void Process(ItemCreated evt)
        {
            var taskList = _repositoryForTaskList.GetById(evt.ListId);

            if (taskList == null)
            {
                taskList = new TaskList
                {
                    Id    = evt.ListId,
                    Tasks = new []
                    {
                        new TodoTask
                        {
                            Text = evt.Text,
                        }
                    }
                };

                _repositoryForTaskList.Insert(taskList);
            }
            else
            {
                taskList.Tasks.Add(new TodoTask
                {
                    Text = evt.Text,
                });

                _repositoryForTaskList.Update(taskList);
            }
        }
        public void InsertPerHealthRiskAndRegionForComing4Weeks(CaseReport caseReport, HealthRisk healthRisk, District district)
        {
            // Insert by health risk and region
            var today    = Day.From(caseReport.Timestamp);
            var region   = _regions.GetById(district.RegionId);
            var numCases = caseReport.NumberOfMalesUnder5
                           + caseReport.NumberOfMalesAged5AndOlder
                           + caseReport.NumberOfFemalesUnder5
                           + caseReport.NumberOfFemalesAged5AndOlder;

            for (var day = 0; day < 28; day++)
            {
                var dayReport = _caseReportsPerRegionLast4Weeks.GetById(day + today);
                if (dayReport != null)
                {
                    var healthRiskForDay = dayReport.HealthRisks.FirstOrDefault(d => d.Id == caseReport.HealthRiskId);
                    if (healthRiskForDay != null)
                    {
                        var regionForHealthRisk = healthRiskForDay.Regions.FirstOrDefault(r => r.Name == region.Name);
                        if (regionForHealthRisk != null)
                        {
                            InsertNumCases(regionForHealthRisk, day, numCases);
                        }
                        else
                        {
                            healthRiskForDay.Regions.Add(AddRegionWithCases(region.Name, day, numCases));
                        }
                    }
                    else
                    {
                        dayReport.HealthRisks.Add(new HealthRisksInRegionsLast4Weeks()
                        {
                            Id             = caseReport.HealthRiskId,
                            HealthRiskName = healthRisk.Name,
                            Regions        = new[] { AddRegionWithCases(region.Name, day, numCases) }
                        });
                    }
                    _caseReportsPerRegionLast4Weeks.Update(dayReport);
                }
                else
                {
                    dayReport = new CaseReportsPerRegionLast4Weeks()
                    {
                        Id          = day + today,
                        HealthRisks = new[]
                        {
                            new HealthRisksInRegionsLast4Weeks()
                            {
                                Id             = caseReport.HealthRiskId,
                                HealthRiskName = healthRisk.Name,
                                Regions        = new [] { AddRegionWithCases(region.Name, day, numCases) }
                            }
                        }
                    };
                    _caseReportsPerRegionLast4Weeks.Insert(dayReport);
                }
            }
            ;
        }
Beispiel #10
0
 public void Process(SmsGatewayRegistered @event)
 {
     _repository.Insert(new SmsGateway(@event.Id)
     {
         Name   = @event.Name,
         ApiKey = @event.ApiKey
     });
 }
Beispiel #11
0
 public void Process(AlertRuleCreated @event)
 {
     _repositoryForAlertRule.Insert(new AlertRule()
     {
         Id             = @event.Id,
         HealthRiskName = @event.AlertRuleName
     });
 }
Beispiel #12
0
 public void Process(ReplyMessageConfigUpdated @event)
 {
     //TODO Event should have Id field
     _replyMessages.Insert(new ReplyMessagesConfig
     {
         //FIXME! Event needs to look different!
         //Messages = @event.Messages
     });
 }
        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);
        }
Beispiel #14
0
 public void Process(TextMessageReceived @event)
 {
     _repositoryForReceivedMessage.Insert(new ReceivedMessage {
         Id       = @event.Id,
         Sender   = @event.Sender,
         Text     = @event.Text,
         Received = @event.Received,
     });
 }
Beispiel #15
0
 public void Process(HealthRiskCreated @event)
 {
     _healthRisks.Insert(new HealthRisk
     {
         Id               = @event.Id,
         Name             = @event.Name,
         HealthRiskNumber = @event.HealthRiskNumber
     });
 }
Beispiel #16
0
        public void Process(HealthRiskCreated @event)
        {
            var healthRisk = new HealthRisk(@event.Id)
            {
                ReadableId = @event.HealthRiskNumber,
                Name       = @event.Name
            };

            _healthRisks.Insert(healthRisk);
        }
Beispiel #17
0
        public void Process(ProjectCreated @event)
        {
            var project = new Project
            {
                Id   = @event.Id,
                Name = @event.Name
            };

            _projects.Insert(project);
        }
Beispiel #18
0
 public void Process(EmployeeRegistered @event)
 {
     _repository.Insert(new Employee
     {
         Id = @event.EventSourceId,
         SocialSecurityNumber = @event.SocialSecurityNumber,
         FirstName            = @event.FirstName,
         LastName             = @event.LastName,
         EmployedFrom         = @event.EmployedFrom
     });
 }
Beispiel #19
0
 public void Process(UserCreated @event)
 {
     _users.Insert(new User
     {
         Country           = @event.Country,
         FullName          = @event.FullName,
         Id                = @event.Id,
         NationalSocietyId = @event.NationalSocietyId,
         DisplayName       = @event.DisplayName
     });
 }
Beispiel #20
0
        public void Process(HealthRiskCreated @event)
        {
            var healthRisk = new HealthRisk
            {
                Id             = @event.Id,
                Name           = @event.Name,
                CaseDefinition = @event.CaseDefinition
            };

            _repository.Insert(healthRisk);
        }
 public void Process(DataCollectorRegistered @event, EventSourceId dataCollectorId)
 {
     _dataCollectors.Insert(new ListedDataCollector(dataCollectorId.Value)
     {
         DisplayName = @event.DisplayName,
         Region      = @event.Region,
         District    = @event.District,
         Village     = "",
         Location    = new Location(@event.LocationLatitude, @event.LocationLongitude)
     });
 }
Beispiel #22
0
        public void InsertPerHealthRiskAndRegionForDay(CaseReport report, HealthRisk healthRisk, District district)
        {
            var numberOfReports = report.NumberOfFemalesAged5AndOlder
                                  + report.NumberOfFemalesUnder5
                                  + report.NumberOfMalesAged5AndOlder
                                  + report.NumberOfMalesUnder5;
            var region = _regions.GetById(district.RegionId);
            var day    = Day.From(report.Timestamp);

            var reportsPerHealthRisk = _caseReportsPerHealthRiskPerDay.GetById(day);

            if (reportsPerHealthRisk == null)
            {
                reportsPerHealthRisk = new CaseReportsPerHealthRiskPerDay()
                {
                    Id                   = day,
                    Timestamp            = report.Timestamp,
                    ReportsPerHealthRisk = new Dictionary <HealthRiskName, Dictionary <RegionName, int> >()
                    {
                        { healthRisk.Name, new Dictionary <RegionName, int>()
                          {
                              { region.Name, numberOfReports }
                          } }
                    }
                };

                _caseReportsPerHealthRiskPerDay.Insert(reportsPerHealthRisk);
            }
            else
            {
                if (reportsPerHealthRisk.ReportsPerHealthRisk.TryGetValue(healthRisk.Name, out Dictionary <RegionName, int> reportsPerRegion))
                {
                    if (reportsPerRegion.TryGetValue(region.Name, out int totalReports))
                    {
                        reportsPerRegion[region.Name] = totalReports + numberOfReports;
                    }
                    else
                    {
                        reportsPerRegion.Add(region.Name, numberOfReports);
                    }
                    reportsPerHealthRisk.ReportsPerHealthRisk[healthRisk.Name] = reportsPerRegion;
                }
                else
                {
                    reportsPerHealthRisk.ReportsPerHealthRisk.Add(healthRisk.Name, new Dictionary <RegionName, int>()
                    {
                        { region.Name, numberOfReports }
                    });
                }

                _caseReportsPerHealthRiskPerDay.Update(reportsPerHealthRisk);
            }
        }
        public void Process(HealthRiskCreated @event)
        {
            var healthRisk = _repositoryForHealthRisks.GetById(@event.HealthRiskId);

            healthRisk = new HealthRisk
            {
                Id               = @event.HealthRiskId,
                HealthRiskName   = @event.HealthRiskName,
                HealthRiskNumber = @event.HealthRiskNumber
            };
            _repositoryForHealthRisks.Insert(healthRisk);
        }
Beispiel #24
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);
        }
        public void Process(InvalidReportFromUnknownDataCollectorReceived @event)
        {
            var invalidCaseReport = new InvalidCaseReportFromUnknownDataCollector(@event.CaseReportId)
            {
                Message             = @event.Message,
                ParsingErrorMessage = @event.ErrorMessages,
                PhoneNumber         = @event.Origin,
                Timestamp           = @event.Timestamp
            };

            _invalidCaseReportsFromUnknownDataCollectors.Insert(invalidCaseReport);
        }
        public void Process(NationalSocietyCreated @event)
        {
            var nationalSociety = new NationalSociety()
            {
                Id      = @event.Id,
                Name    = @event.Name,
                Country = @event.Country,
                TimezoneOffsetFromUtcInMinutes = @event.TimezoneOffsetFromUtcInMinutes
            };

            _nationalSocieties.Insert(nationalSociety);
        }
Beispiel #27
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 #28
0
        public void Process(HealthRiskCreated @event)
        {
            var healthRisk = _healthRisks.GetById(@event.Id);

            healthRisk = new HealthRisk
            {
                Id               = @event.Id,
                Name             = @event.Name,
                HealthRiskNumber = @event.HealthRiskNumber
            };
            _healthRisks.Insert(healthRisk);
        }
Beispiel #29
0
        public void Process(TaskCreated @event)
        {
            var todo = new Todo
            {
                Id       = @event.Id,
                Text     = @event.Text,
                Category = @event.Category,
                Status   = @event.Status
            };

            _repository.Insert(todo);
        }
        public void Process(InvalidReportReceived @event)
        {
            var invalidCaseReport = new InvalidCaseReport(@event.CaseReportId)
            {
                DataCollectorId     = @event.DataCollectorId,
                Message             = @event.Message,
                Origin              = @event.Origin,
                ParsingErrorMessage = @event.ErrorMessages,
                Timestamp           = @event.Timestamp
            };

            _invalidCaseReports.Insert(invalidCaseReport);
        }