using FluentValidation; using FluentValidation.Validators; using NzbDrone.Common.Extensions; namespace NzbDrone.Core.Validation { public static class UrlValidation { public static IRuleBuilderOptions IsValidUrl(this IRuleBuilder ruleBuilder) { return ruleBuilder.SetValidator(new UrlValidator()); } } public class UrlValidator : PropertyValidator { protected override string GetDefaultMessageTemplate() => "Invalid Url: '{url}'"; protected override bool IsValid(PropertyValidatorContext context) { if (context.PropertyValue == null) { return false; } context.MessageFormatter.AppendArgument("url", context.PropertyValue.ToString()); return context.PropertyValue.ToString().IsValidUrl(); } } }