public async Task <SlackMessage> Respond(SlackCommandRequest request) { if (request == null) { throw new System.ArgumentNullException(nameof(request)); } _logger.LogDebug("Command payload: {0}", _serializer.ObjectToJson(request)); _tokenValidation.Validate(request); foreach (var command in _commands) { var result = await command.Respond(request); if (result != null) { _logger.LogDebug("Command response: {0}", _serializer.ObjectToJson(result)); return(result); } } throw new SlackException($"Unhandled Command: {request.Command}"); }
public async Task <ISlackInteractionResponse> Respond(SlackInteractionRequest request) { if (request == null) { throw new System.ArgumentNullException(nameof(request)); } _logger.LogDebug("Interaction payload: {0}", request.Payload); var payload = _serializer.JsonToObject <ISlackInteractionPayload>(request.Payload); _tokenValidation.Validate(payload); if (payload is SlackActionPayload) { return(await HandleAction(payload as SlackActionPayload)); } else { return(await HandleDialog(payload as SlackDialogPayload)); } }