private void ProcessCompletion(TaskCompletionSource <SlackMessage> ts, string channel, PostMessageResponse msg) { try { ts.SetResult(SlackMessage.Create(this, channel, msg.message)); } catch (Exception e) { ts.SetException(e); Console.WriteLine(msg.error); Console.WriteLine(e); } }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); // Local execution setting in local.settings.json // Azure execution setting configuration -> Application settings var slackWebHookUrl = Environment.GetEnvironmentVariable("SLACK_WEBHOOK_URL"); if (string.IsNullOrWhiteSpace(slackWebHookUrl)) { log.LogError("Application variable SLACK_WEBHOOK_URL not set"); return(new BadRequestResult()); } dynamic data = JsonConvert.DeserializeObject(await new StreamReader(req.Body).ReadToEndAsync()); if (data == null) { log.LogInformation("Invalid input data"); return(new BadRequestResult()); } var message = SlackMessage .Create(data) .ToString(); if (await PostSlackMessage(message, slackWebHookUrl, log)) { log.LogInformation("Webhook successfully sent to Slack"); return(new OkResult()); } else { log.LogInformation("Error sending Webhook"); return(new BadRequestResult()); } }