Esempio n. 1
0
        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));
            }
        }