public bool ValidateUrlPatterns(string url, out string message, string validatingFieldName = null)
{
message = null;
foreach (PatternElement pattern in configuration.UrlPatterns)
{
var options = RegexOptions.None;
if (pattern.IgnoreCase)
{
options = options | RegexOptions.IgnoreCase;
}
var regex = new Regex(pattern.Expression, options);
var matched = regex.IsMatch(url);
if (pattern.Negate)
{
if (matched)
{
message = (!string.IsNullOrWhiteSpace(validatingFieldName))
? string.Format(pattern.Description, validatingFieldName)
: string.Format(pattern.Description, PagesGlobalization.PageUrl_PatternValidation_Message_Url);
return false;
}
}
else
{
if (!matched)
{
message = (!string.IsNullOrWhiteSpace(validatingFieldName))
? string.Format(pattern.Description, validatingFieldName)
: string.Format(pattern.Description, PagesGlobalization.PageUrl_PatternValidation_Message_Url);
return false;
}
}
}
return true;
}
}