public static bool Verify(VerifiableMemberContext context, IEnumerable <IFlagAnnotation> annotations, out VerifyFailure failure) { if (context is null) { throw new ArgumentNullException(nameof(context)); } var errors = new List <VerifyError>(); foreach (var annotation in annotations) { VerifyAnnotation(context, annotation, errors); } if (errors.Any()) { failure = new VerifyFailure(context.MemberName, $"There are multiple errors in this Member '{context.MemberName}'.", context.Value); failure.Details.AddRange(errors); } else { failure = null; } return(failure is null); }
public static VerifyFailure Create(string propertyName, string errorMessage) { var failure = new VerifyFailure(propertyName, errorMessage); var error = new VerifyError { ErrorMessage = errorMessage, ViaValidatorType = ValidatorType.Custom, ValidatorName = "System.ComponentModel.DataAnnotations.Validator" }; failure.Details.Add(error); return(failure); }
public static VerifyResult VerifyOne(VerifiableMemberContext context) { if (context is null) { throw new ArgumentNullException(nameof(context)); } var annotations = context.Attributes .Where(a => a.GetType().IsDerivedFrom <ValidationAttribute>()) .Select(a => a as ValidationAttribute); var errors = new List <VerifyError>(); foreach (var annotation in annotations) { if (annotation is null) { continue; } if (annotation.IsValid(context.Value)) { continue; } var error = new VerifyError { ErrorMessage = annotation.ErrorMessage, ViaValidatorType = ValidatorType.Custom, ValidatorName = $"DataAnnotation {annotation.GetType().GetFriendlyName()} Validator" }; errors.Add(error); } if (!errors.Any()) { return(VerifyResult.Success); } var failure = new VerifyFailure(context.MemberName, $"There are multiple errors in this Member '{context.MemberName}'.", context.Value); return(new VerifyResult(failure)); }
public static List <VerifyFailure> ConvertToFailures(this Dictionary <string, CorrectVerifyValState> verifyValDictionary) { var failures = new List <VerifyFailure>(); if (verifyValDictionary is null) { return(failures); } foreach (var pair in verifyValDictionary) { if (!pair.Value.IncludeFailures) { continue; } var memberName = pair.Key; var verifyValSet = pair.Value.GetCorrectVerifyValSet().ToList(); if (!verifyValSet.Any()) { continue; } var count = verifyValSet.Count; var memberValue = verifyValSet[0].VerifiedValue; var failure = new VerifyFailure(memberName, $"Member {memberName} encountered {(count == 1 ? "an error" : "some errors")} during verification.", memberValue) { Details = verifyValSet.Select(verifyVal => new VerifyError { ErrorMessage = verifyVal.ErrorMessage }).ToList() }; failures.Add(failure); } return(failures); }
public static IEnumerable <VerifyFailure> ConvertToVerifyFailures(this IList <ValidationFailure> originalFailures, Type typeOfValidator) { var failureHolding = new Dictionary <string, VerifyFailure>(); foreach (var originalFailure in originalFailures) { if (!failureHolding.TryGetValue(originalFailure.PropertyName, out var targetFailure)) { targetFailure = new VerifyFailure(originalFailure.PropertyName, $"There are multiple errors in this Member '{originalFailure.PropertyName}'.", originalFailure.AttemptedValue); failureHolding[originalFailure.PropertyName] = targetFailure; } var error = new VerifyError { ErrorMessage = originalFailure.ErrorMessage, ViaValidatorType = ValidatorType.Custom, ValidatorName = $"FluentValidation-{typeOfValidator.GetFriendlyName()}" }; targetFailure.Details.Add(error); } return(failureHolding.Select(x => x.Value)); }