public static async Task <HttpResponseMessage> Run( [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequestMessage req, ILogger log, ExecutionContext context) { log.LogInformation($"C# HTTP trigger function processed this request: {req}"); var result = new WebhookListResponse(); var config = new ConfigurationBuilder() .SetBasePath(context.FunctionAppDirectory) .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables() .Build(); StorageTableHelper stgHelper = new StorageTableHelper(config["UlsDataStorage"]); try { result.UrlList = await stgHelper.GetAllWebhooks(); } catch (Exception ex) { log.LogError(ex, "An unexpected error was encountered."); return(req.CreateResponse(HttpStatusCode.BadRequest, ex)); } return(req.CreateResponse(HttpStatusCode.OK, result)); }
private static async Task RunWebhooks(StorageTableHelper stgHelper, ClickStatsResponse response) { var hooks = await stgHelper.GetAllWebhooks(); using (var client = new HttpClient()) using (var httpContent = CreateHttpContent(response)) { foreach (var hook in hooks) { using (var request = new HttpRequestMessage(HttpMethod.Post, hook.Url)) { request.Content = httpContent; await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead); } } } }