using FluentValidation; namespace WatchIt.WebAPI.Validators; public static class CustomValidators { public static IRuleBuilderOptions CannotBeIn(this IRuleBuilder ruleBuilder, IEnumerable collection) => ruleBuilder.Must(x => !collection.Any(e => Equals(e, x))); public static IRuleBuilderOptions CannotBeIn(this IRuleBuilder ruleBuilder, IEnumerable collection, Func propertyFunc) => ruleBuilder.Must(x => !collection.Select(propertyFunc).Any(e => Equals(e, x))); public static IRuleBuilderOptions MustBeIn(this IRuleBuilder ruleBuilder, IEnumerable collection) => ruleBuilder.Must(x => collection.Any(e => Equals(e, x))); public static IRuleBuilderOptions MustBeIn(this IRuleBuilder ruleBuilder, IEnumerable collection, Func propertyFunc) => ruleBuilder.Must(x => collection.Select(propertyFunc).Any(e => Equals(e, x))); }