//TODO: QUESTION: Shouldn't this listen to MessageGenerated-event?

        public async void Process(MessageGenerated @event)
        {
            var greetingHistory = await _greetingHistories.GetByPhoneNumberAsync(@event.PhoneNumber) ??
                                  new GreetingHistory(@event.DataCollectorId);

            greetingHistory.PhoneNumber = @event.PhoneNumber;
        }
Example #2
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 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
            });
        }