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); }
public TwilioTextMessager(TwilioSettings settings, string toPhoneNumber) { this.Settings = settings ?? throw new ArgumentNullException(nameof(settings)); this.To = toPhoneNumber ?? throw new ArgumentNullException(nameof(toPhoneNumber)); }