示例#1
0
        private static async Task ProcessMessageHandlerAsync(Message message, CancellationToken cancellationToken)
        {
            // retrieve
            var dto = JsonConvert.DeserializeObject <WashcycleMessageDto>(Encoding.UTF8.GetString(message.Body));

            log.MessageReceived(dto);

            // send notification
            var settings = new TwilioSettings()
            {
                AccountSid = configuration["Values:TwilioAccountSid"],
                AuthToken  = configuration["Values:TwilioAuthToken"],
                From       = configuration["Values:TwilioFromPhoneNumber"]
            };

            var texter = new TwilioTextMessager(settings, dto.Phone);
            await texter.SendMessage($"Your dishwasher's wash cycle completed at {dto.CycleCompletesAt:t}. Ready to unload?");

            // dequeue
            await queueClient.CompleteAsync(message.SystemProperties.LockToken);
        }
示例#2
0
 public TwilioTextMessager(TwilioSettings settings, string toPhoneNumber)
 {
     this.Settings = settings ?? throw new ArgumentNullException(nameof(settings));
     this.To       = toPhoneNumber ?? throw new ArgumentNullException(nameof(toPhoneNumber));
 }