private static async Task <IActionResult> ProcessDialogAction(IBinder binder, InteractiveMessagePayload payload) { var action = payload.Actions.First(); if (action.Name == "plan") { var dialogRequest = new OpenDialogRequest { TriggerId = payload.TriggerId, Dialog = await DialogHelpers.GetPlanDialog(binder, action.Value) }; await SlackHelper.OpenDialog(binder, payload.Team.Id, dialogRequest); } // NOTE: Présentement toutes les dialog_actions suppriment le message original return(Utils.Ok(new SlackMessage { DeleteOriginal = true })); }
public static async Task <IActionResult> OnPlan( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "slack/commands/plan")] HttpRequest req, [Table("proposals")] CloudTable proposalsTable, IBinder binder, ExecutionContext context) { Utils.SetCulture(); var body = await SlackHelper.ReadSlackRequest(req, context); var parameters = SlackHelper.ParseBody(body); var partitionKey = Utils.GetPartitionKey(parameters["team_id"], parameters["channel_id"]); var dialogRequest = new OpenDialogRequest { TriggerId = parameters["trigger_id"], Dialog = await DialogHelpers.GetPlanDialog(binder, partitionKey, defaultDate : parameters["text"]) }; await SlackHelper.OpenDialog(binder, parameters["team_id"], dialogRequest); return(Utils.Ok()); }