private bool IsMatch(IDictionary<string, string> headers, HttpHeaderInfo header) { string value; if (headers.TryGetValue(header.Name, out value)) { switch (header.Match) { case HeaderMatchType.Equals: return string.Equals(value, header.Value, StringComparison.OrdinalIgnoreCase); case HeaderMatchType.Substring: var isMatch = value.IndexOf(header.Value, StringComparison.OrdinalIgnoreCase) != -1; //_logger.Debug("IsMatch-Substring value: {0} testValue: {1} isMatch: {2}", value, header.Value, isMatch); return isMatch; case HeaderMatchType.Regex: // Reports of IgnoreCase not working on linux so try it a couple different ways. return Regex.IsMatch(value, header.Value, RegexOptions.IgnoreCase) || Regex.IsMatch(value.ToUpper(), header.Value.ToUpper(), RegexOptions.IgnoreCase); default: throw new ArgumentException("Unrecognized HeaderMatchType"); } } return false; }
private bool IsMatch(IDictionary<string, string> headers, HttpHeaderInfo header) { string value; if (headers.TryGetValue(header.Name, out value)) { switch (header.Match) { case HeaderMatchType.Equals: return string.Equals(value, header.Value, StringComparison.OrdinalIgnoreCase); case HeaderMatchType.Substring: return value.IndexOf(header.Value, StringComparison.OrdinalIgnoreCase) != -1; case HeaderMatchType.Regex: return Regex.IsMatch(value, header.Value, RegexOptions.IgnoreCase); default: throw new ArgumentException("Unrecognized HeaderMatchType"); } } return false; }