private static bool HyperlinkMatchesUri(string uri, HyperlinkButton link)
{
var queryStart = uri.IndexOf('/', Math.Min(uri.Length, 1));
if (queryStart < 0)
{
queryStart = uri.IndexOf('?');
}
if (queryStart > 0)
{
uri = uri.Substring(0, queryStart);
}
if (link.CommandParameter != null &&
uri.Equals(link.CommandParameter.ToString(), StringComparison.InvariantCultureIgnoreCase))
{
return true;
}
var alternativeUris = LinkHighlighter.GetAlternativeUris(link);
if (alternativeUris != null && alternativeUris.Any(alternative => uri.Equals(alternative, StringComparison.InvariantCultureIgnoreCase)))
{
return true;
}
return false;
}