static bool TryMatch(QueryParameterMatcher matcher, string queryValue, string expectedValue) { return(matcher.Mode switch { QueryParameterMatchMode.Exact => queryValue.Equals(expectedValue, matcher.Comparison), QueryParameterMatchMode.Prefix => queryValue.StartsWith(expectedValue, matcher.Comparison), _ => queryValue.Contains(expectedValue, matcher.Comparison) });
private static bool TryMatch(QueryParameterMatcher matcher, StringValues requestHeaderValues) { var requestHeaderCount = requestHeaderValues.Count; for (var i = 0; i < requestHeaderCount; i++) { var requestValue = requestHeaderValues[i]; if (requestValue is null) { continue; } foreach (var expectedValue in matcher.Values) { if (TryMatch(matcher, requestValue, expectedValue)) { return(matcher.Mode != QueryParameterMatchMode.NotContains); } } } return(matcher.Mode == QueryParameterMatchMode.NotContains);