Example #1
0
        public async Task AddAttributeValidationResultsAsync(PropertyInfo propertyInfo, object value, ApiOperationContext apiOperationContext, ValidationFailures results)
        {
            var attributes = propertyInfo.GetAttributes <BlueprintValidationAttribute>(true);

            foreach (var attribute in attributes)
            {
                var result = await attribute.GetValidationResultAsync(propertyInfo.GetValue(value, null), propertyInfo.Name, apiOperationContext);

                if (result != ValidationResult.Success)
                {
                    results.AddFailure(result);
                }
            }
        }
        public Task AddClassValidationResultsAsync(object value, ApiOperationContext apiOperationContext, ValidationFailures results)
        {
            var validationContext = new ValidationContext(value, null, null);

            if (value is IValidatableObject validatableObject)
            {
                var validationResults = validatableObject.Validate(validationContext);

                foreach (var validationResult in validationResults)
                {
                    results.AddFailure(validationResult);
                }
            }

            return(Task.CompletedTask);
        }
        public Task AddAttributeValidationResultsAsync(PropertyInfo propertyInfo, object value, ApiOperationContext apiOperationContext, ValidationFailures results)
        {
            var validationContext = new ValidationContext(value, null, null);

            var validationAttributes = propertyInfo.GetAttributes <ValidationAttribute>(true);

            foreach (var validation in validationAttributes)
            {
                var result = validation.GetValidationResult(
                    propertyInfo.GetValue(value, null),
                    GetValidationContext(validationContext, propertyInfo));

                if (result != ValidationResult.Success)
                {
                    results.AddFailure(result);
                }
            }

            return(Task.CompletedTask);
        }