public static async Task Run( [EventGridTrigger] EventGridEvent eventGridEvent, [CosmosDB(databaseName: "TelemetryDb", collectionName: "alerts", ConnectionStringSetting = "CosmosDBConnection")] DocumentClient client, ILogger log) { var data = eventGridEvent.Data.ToString(); log.LogInformation(data); var jObject = JObject.Parse(data); var newAlerts = JsonConvert.DeserializeObject <IList <Alert> >(jObject["body"].ToString()); var databaseName = Environment.GetEnvironmentVariable("COSMOS_DB_DATABASE_NAME"); var collectionName = Environment.GetEnvironmentVariable("COSMOS_DB_COLLECTION_NAME"); var twilioConfig = new TwilioConfiguration { ToPhoneNumber = Environment.GetEnvironmentVariable("ALERT_TO_PHONE_NUMBER"), FromPhoneNumber = Environment.GetEnvironmentVariable("ALERT_FROM_PHONE_NUMBER"), AccountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID"), AuthToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN") }; var alertsRepository = new AlertsRepository(client, databaseName, collectionName); var handler = new AlertHandler(alertsRepository, new TwilioNotificationService(twilioConfig, log), log); await handler.HandleAsync(newAlerts); }
public TwilioNotificationService(TwilioConfiguration config, ILogger log) { _log = log; _config = config; }