/// <summary>Determines whether <paramref name="baseUri" /> is a base URI for <paramref name="relativeUri" />.</summary>
/// <returns>true if <paramref name="baseUri" /> is a base URI for <paramref name="relativeUri" />; otherwise, false.</returns>
/// <param name="baseUri">The base URI.</param>
/// <param name="relativeUri">The URI to test.</param>
protected internal virtual bool IsBaseOf(Uri baseUri, Uri relativeUri)
{
if (Uri.Compare(baseUri, relativeUri, UriComponents.Scheme | UriComponents.UserInfo | UriComponents.Host | UriComponents.Port, UriFormat.Unescaped, StringComparison.InvariantCultureIgnoreCase) != 0)
{
return(false);
}
string localPath = baseUri.LocalPath;
int length = localPath.LastIndexOf('/') + 1;
return(string.Compare(localPath, 0, relativeUri.LocalPath, 0, length, StringComparison.InvariantCultureIgnoreCase) == 0);
}