private IReadOnlyList <HCError> ValidateQueryDocuments(ISchema schema) { var errors = new List <HCError>(); try { var serviceCollection = new ServiceCollection(); serviceCollection.AddQueryValidation(); serviceCollection.AddDefaultValidationRules(); serviceCollection.AddSingleton <IValidateQueryOptionsAccessor, ValidationOptions>(); var validator = serviceCollection.BuildServiceProvider() .GetService <IQueryValidator>(); foreach (DocumentInfo documentInfo in _queries.Values) { QueryValidationResult validationResult = validator.Validate(schema, documentInfo.Document); if (validationResult.HasErrors) { foreach (HCError error in validationResult.Errors) { errors.Add(HCErrorBuilder.FromError(error) .SetExtension("fileName", documentInfo.FileName) .SetExtension("document", documentInfo.Document) .Build()); } } } } catch (GeneratorException ex) { errors.AddRange(ex.Errors); } return(errors); }
/// <summary> /// Initializes an instance of <see cref="QueryResult"/> /// </summary> public QueryResult() { SecurityMessages = new string[0]; Validation = new QueryValidationResult(new BrokenRule[0]); }