public static GraphQLFluentValidationResult From(ValidationResult result)
        {
            var model = new GraphQLFluentValidationResult();

            foreach (var error in result.Errors)
            {
                var fieldError = new GraphQLFieldError
                {
                    Field = error.PropertyName
                };
                fieldError.Errors.Add(error.ErrorMessage);
                model.Errors.Add(fieldError);
            }

            return(model);
        }
示例#2
0
        public async Task <IGraphQLValidationResult> ValidateAsync <T>(T subject, CancellationToken cancellationToken = default)
        {
            var validationService = serviceProvider.GetService(typeof(IValidator <T>)) as IValidator <T>;

            if (validationService == null)
            {
                return(new GraphQLValidResult());
            }

            var result = await validationService.ValidateAsync(subject, cancellationToken);

            if (!result.IsValid)
            {
                return(GraphQLFluentValidationResult.From(result));
            }

            return(new GraphQLValidResult());
        }
示例#3
0
        public async Task <IGraphQLValidationResult> ValidateObjectAsync(object subject, CancellationToken cancellationToken = default)
        {
            var validatorType     = typeof(IValidator <>).MakeGenericType(subject.GetType());
            var validationService = serviceProvider.GetService(validatorType) as IValidator;

            if (validationService == null)
            {
                return(new GraphQLValidResult());
            }

            var result = await validationService.ValidateAsync(new ValidationContext <object>(subject), cancellationToken);

            if (!result.IsValid)
            {
                return(GraphQLFluentValidationResult.From(result));
            }

            return(new GraphQLValidResult());
        }