示例#1
0
        public void Process(PhoneNumberAddedToDataCollector @event)
        {
            var dataCollector = _dataCollectors.GetById(@event.DataCollectorId);

            dataCollector.PhoneNumbers.Add(new PhoneNumber(@event.PhoneNumber));
            _dataCollectors.Save(dataCollector);
        }
        public void Process(PhoneNumberAddedToDataCollector @event)
        {
            var greetingHistory = _greetingHistories.GetByPhoneNumber(@event.PhoneNumber) ?? new GreetingHistory(@event.DataCollectorId);

            greetingHistory.PhoneNumber = @event.PhoneNumber; // Todo: THis does nothing if GetByPhoneNumberAsync doesn't return nul
            _greetingHistories.Update(greetingHistory);
        }
示例#3
0
        //TODO: QUESTION: Shouldn't this listen to MessageGenerated-event?
        public async void Process(PhoneNumberAddedToDataCollector @event)
        {
            var greetingHistory = await _greetingHistories.GetByPhoneNumberAsync(@event.PhoneNumber) ?? new GreetingHistory(@event.DataCollectorId);

            greetingHistory.PhoneNumber = @event.PhoneNumber;
            await _greetingHistories.SaveAsync(greetingHistory);
        }
        public void Process(PhoneNumberAddedToDataCollector @event, EventSourceId dataCollectorId)
        {
            var dataCollector = _dataCollectors.GetById(dataCollectorId.Value);

            dataCollector.PhoneNumbers.Add(@event.PhoneNumber);
            _dataCollectors.Update(dataCollector);
        }
示例#5
0
        public void Process(PhoneNumberAddedToDataCollector @event)
        {
            var dataCollector = _dataCollectors.GetById(@event.DataCollectorId);
            var phoneNumbers  = dataCollector.PhoneNumbers;

            phoneNumbers.Append(new PhoneNumber(@event.PhoneNumber));
            _dataCollectors.Update(dataCollector);
        }
示例#6
0
        public async Task Process(PhoneNumberAddedToDataCollector @event)
        {
            //TODO: How to handle if datacollector does not exist? SHould not occur since that mean error in event sequence
            var dataCollector = _dataCollectors.GetById(@event.DataCollectorId);

            dataCollector.PhoneNumbers.Add(@event.PhoneNumber);
            await _dataCollectors.Save(dataCollector);
        }
 public void Process(PhoneNumberAddedToDataCollector @event)
 {
     _dataCollectors.Update(d => d.Id == (DataCollectorId)@event.DataCollectorId,
                            Builders <DataCollector> .Update.AddToSet(d => d.PhoneNumbers, new PhoneNumber()
     {
         Value = @event.PhoneNumber
     }));
 }
        public void Process(PhoneNumberAddedToDataCollector @event)
        {
            var dataCollector = _dataCollectors.GetById(@event.DataCollectorId);

            dataCollector.PhoneNumbers.Append(new PhoneNumber()
            {
                Value = @event.PhoneNumber
            });
            _dataCollectors.Update(dataCollector);
        }
示例#9
0
        public void Process(PhoneNumberAddedToDataCollector @event)
        {
            var res = _dataCollectors.UpdateOne(
                Builders <DataCollector> .Filter.Where(d => d.DataCollectorId == @event.DataCollectorId),
                Builders <DataCollector> .Update.AddToSet(d => d.PhoneNumbers, new PhoneNumber(@event.PhoneNumber)));

            if (res.IsModifiedCountAvailable && res.MatchedCount < 1)
            {
                throw new Exception("Data collector with id " + @event.DataCollectorId + " was not found");
            }
        }
        public void Process(PhoneNumberAddedToDataCollector @event, EventSourceId dataCollectorId)
        {
            var dataCollector = _dataCollectors.GetById(dataCollectorId.Value);
            var phoneNumbers  = dataCollector.PhoneNumbers;

            phoneNumbers.Append(new PhoneNumber()
            {
                Value = @event.PhoneNumber
            });
            dataCollector.PhoneNumbers = phoneNumbers;
            _dataCollectors.Update(dataCollector);
        }
示例#11
0
        public void Process(PhoneNumberAddedToDataCollector @event)
        {
            var dataCollector = _dataCollectors.GetById(@event.DataCollectorId);

            //TODO: Business Validator should check this(?)
            if (dataCollector == null)
            {
                return;
            }
            dataCollector.PhoneNumbers.Add(new PhoneNumber(@event.PhoneNumber));
            _dataCollectors.Save(dataCollector);
        }
示例#12
0
        public void Process(PhoneNumberAddedToDataCollector @event)
        {
            var unknownReports = this.unknownReports.GetByPhoneNumber(@event.PhoneNumber);
            var dataCollector  = dataCollectors.GetById(@event.DataCollectorId);

            foreach (var item in unknownReports)
            {
                var repo = caseReportingAggregateRootRepository.Get(item.Id.Value);
                repo.Report(
                    @event.DataCollectorId,
                    item.HealthRiskId,
                    item.Origin,
                    item.NumberOfMalesUnder5,
                    item.NumberOfMalesAged5AndOlder,
                    item.NumberOfFemalesUnder5,
                    item.NumberOfFemalesAged5AndOlder,
                    dataCollector.Location.Longitude,
                    dataCollector.Location.Latitude,
                    item.Timestamp,
                    item.Message

                    );
                repo.ReportFromUnknownDataCollectorIdentiefied(@event.DataCollectorId);
            }


            var invalidAndUnknownReports = this.invalidAndUnknownReports.GetByPhoneNumber(@event.PhoneNumber);

            foreach (var item in invalidAndUnknownReports)
            {
                var repo = caseReportingAggregateRootRepository.Get(item.Id.Value);
                repo.ReportInvalidReport(
                    @event.DataCollectorId,
                    item.PhoneNumber,
                    item.Message,
                    dataCollector.Location.Longitude,
                    dataCollector.Location.Latitude,
                    item.ParsingErrorMessage,
                    item.Timestamp

                    );
                repo.ReportFromUnknownDataCollectorIdentiefied(@event.DataCollectorId);
            }
        }
示例#13
0
        public void Process(PhoneNumberAddedToDataCollector @event, EventSourceId dataCollectorId)
        {
            var unknownReports = _unknownReports.Query.Where(r => r.Origin == @event.PhoneNumber);
            var dataCollector  = _dataCollectors.GetById(dataCollectorId);

            foreach (var item in unknownReports)
            {
                var caseReport = _caseReportingAggregateRootRepository.Get(item.Id.Value);
                caseReport.Report(
                    dataCollectorId,
                    item.HealthRiskId,
                    item.Origin,
                    item.NumberOfMalesUnder5,
                    item.NumberOfMalesAged5AndOlder,
                    item.NumberOfFemalesUnder5,
                    item.NumberOfFemalesAged5AndOlder,
                    dataCollector.Location.Longitude,
                    dataCollector.Location.Latitude,
                    item.Timestamp,
                    item.Message

                    );
                caseReport.ReportFromUnknownDataCollectorIdentiefied(dataCollectorId);
            }

            var invalidAndUnknownReports = _invalidAndUnknownReports.Query.Where(r => r.PhoneNumber == @event.PhoneNumber);

            foreach (var item in invalidAndUnknownReports)
            {
                var caseReport = _caseReportingAggregateRootRepository.Get(item.Id.Value);
                caseReport.ReportInvalidReport(
                    dataCollectorId,
                    item.PhoneNumber,
                    item.Message,
                    dataCollector.Location.Longitude,
                    dataCollector.Location.Latitude,
                    item.ParsingErrorMessage,
                    item.Timestamp

                    );
                caseReport.ReportFromUnknownDataCollectorIdentiefied(dataCollectorId);
            }
        }
示例#14
0
        public async Task Process(PhoneNumberAddedToDataCollector @event)
        {
            var unknownReports = await this.unknownReports.GetByPhoneNumber(@event.PhoneNumber);

            foreach (var item in unknownReports)
            {
                var repo = caseReportingAggregateRootRepository.Get(item.Id);
                repo.Report(
                    @event.DataCollectorId,
                    item.HealthRiskId,
                    item.NumberOfMalesUnder5,
                    item.NumberOfMalesOver5,
                    item.NumberOfFemalesUnder5,
                    item.NumberOfFemalesOver5,
                    item.Location.Longitude,
                    item.Location.Latitude,
                    item.Timestamp
                    );
                repo.ReportFromUnknownDataCollectorIdentiefied(@event.DataCollectorId);
            }
        }
        public async void Process(PhoneNumberAddedToDataCollector @event)
        {
            var dataCollector = await _dataCollectors.GetByIdAsync(@event.DataCollectorId);

            // Todo Get the correct welcome message based on the dataCollector.PreferredLanguage
            var welcomeMessage = "Welcome!";

            var smsGenerator = await _greetingHistories.GetByPhoneNumberAsync(@event.PhoneNumber);

            if (smsGenerator != null)
            {
                return;
            }

            var smsGeneratorAggregateRootRepository = _messageGeneratorsAggregateRootRepository.Get(@event.DataCollectorId);

            smsGeneratorAggregateRootRepository.GenerateMessage(new GenerateMessage()
            {
                Id          = @event.DataCollectorId,
                Message     = welcomeMessage,
                PhoneNumber = @event.PhoneNumber
            });
        }
示例#16
0
 private void On(PhoneNumberAddedToDataCollector @event)
 {
     _numbers.Add(@event.PhoneNumber);
 }
 public void Process(PhoneNumberAddedToDataCollector @event)
 {
     var updateRes = _dataCollectors.AddPhoneNumber(d => d.Id == @event.DataCollectorId, @event.PhoneNumber);
 }