예제 #1
0
        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);
        }
예제 #2
0
 public TwilioNotificationService(TwilioConfiguration config, ILogger log)
 {
     _log    = log;
     _config = config;
 }