using FluentValidation; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; 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))); } }