public static async Task AssertTypeValidatorsAsync(IRequest req, object requestDto, Type requestType) { if (TypeRulesMap.TryGetValue(requestType, out var typeValidators)) { foreach (var scriptValidator in typeValidators) { await scriptValidator.ThrowIfNotValidAsync(requestDto, req); } } }
public static void AddRule(Type type, PropertyInfo pi, ValidateAttribute attr) { var typeRules = TypeRulesMap.TryGetValue(type, out var rules) ? rules : TypeRulesMap[type] = new List <IValidationRule>(); var rule = typeRules.FirstOrDefault(x => (x as PropertyRule)?.PropertyName == pi.Name); if (rule == null) { typeRules.Add(rule = CreatePropertyRule(type, pi)); } var validators = (List <IPropertyValidator>)rule.Validators; validators.AddRule(pi, attr); }
public static List <ITypeValidator> GetTypeRules(Type type) => TypeRulesMap.TryGetValue(type, out var rules) ? rules : TypeConstants <ITypeValidator> .EmptyList;