private InteractiveResponse EvaluateResponseType(SocketMessage message, InteractiveMessage interactiveMessage, InteractiveResponse response) { switch (interactiveMessage.ResponseType) { case InteractiveTextResponseType.Channel: if (message.ContainsChannel()) { response.CriteriaResult = CriteriaResult.Success; } break; case InteractiveTextResponseType.User: if (message.ContainsUser()) { response.CriteriaResult = CriteriaResult.Success; } break; case InteractiveTextResponseType.Role: if (message.ContainsRole()) { response.CriteriaResult = CriteriaResult.Success; } break; case InteractiveTextResponseType.Options: if (message.ContainsWords(1, interactiveMessage.CaseSensitive, interactiveMessage.Options)) { response.CriteriaResult = CriteriaResult.Success; } break; case InteractiveTextResponseType.Any: response.CriteriaResult = CriteriaResult.Success; break; default: throw new ArgumentOutOfRangeException(); } return(response); }