Пример #1
0
        private static bool MatchHeader(HeaderMatchMode matchMode, string requestHeaderValue, string metadataHeaderValue, bool isCaseSensitive)
        {
            var comparison = isCaseSensitive ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase;

            return(matchMode switch
            {
                HeaderMatchMode.ExactHeader => MemoryExtensions.Equals(requestHeaderValue, metadataHeaderValue, comparison),
                HeaderMatchMode.HeaderPrefix => requestHeaderValue != null && metadataHeaderValue != null &&
                MemoryExtensions.StartsWith(requestHeaderValue, metadataHeaderValue, comparison),
                _ => throw new NotImplementedException(matchMode.ToString()),
            });
Пример #2
0
    private static bool MatchQueryParameter(QueryParameterMatchMode matchMode, string requestQueryParameterValue, string metadataQueryParameterValue, bool isCaseSensitive)
    {
        var comparison = isCaseSensitive ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase;

        return(matchMode switch
        {
            QueryParameterMatchMode.Exact => MemoryExtensions.Equals(requestQueryParameterValue, metadataQueryParameterValue, comparison),
            QueryParameterMatchMode.Prefix => requestQueryParameterValue != null && metadataQueryParameterValue != null &&
            MemoryExtensions.StartsWith(requestQueryParameterValue, metadataQueryParameterValue, comparison),
            QueryParameterMatchMode.Contains => requestQueryParameterValue != null && metadataQueryParameterValue != null &&
            MemoryExtensions.Contains(requestQueryParameterValue, metadataQueryParameterValue, comparison),
            QueryParameterMatchMode.NotContains => requestQueryParameterValue != null && metadataQueryParameterValue != null &&
            !MemoryExtensions.Contains(requestQueryParameterValue, metadataQueryParameterValue, comparison),
            _ => throw new NotImplementedException(matchMode.ToString()),
        });