예제 #1
0
        /// <summary>
        /// The validate business rules.
        /// </summary>
        /// <param name="instance">The instance.</param>
        /// <param name="validationResults">The validation results.</param>
        protected override void ValidateBusinessRules(ModelBase instance, List <IBusinessRuleValidationResult> validationResults)
        {
            if (_validatorDescriptionAttribute.ValidationType == ValidationType.BusinessRule)
            {
                ValidationResult validationResult = _validator.Validate(instance);

                if (!validationResult.IsValid)
                {
                    validationResults.AddRange(validationResult.Errors.Select(validationFailure => new BusinessRuleValidationResult(
                                                                                  _validatorDescriptionAttribute.ValidationResultType, validationFailure.ErrorMessage)
                    {
                        Tag = _validatorDescriptionAttribute.Tag
                    }).Cast <IBusinessRuleValidationResult>());
                }
            }
        }
예제 #2
0
        public bool Validate <T>(HttpRequest httpRequest, T request, FluentValidation.IValidator <T> validator, ref IActionResult invalidResult) where T : class
        {
            bool result = false;


            if (request == null)
            {
                _logger.Warn(typeof(T).FullName + " was passed null, request must contain data. Throwing ValidationException");

                invalidResult = new BadRequest(new List <string>()
                {
                    "Request must contain data"
                }, httpRequest);
            }
            else
            {
                var validationResult = validator.Validate(request);

                if (!validationResult.IsValid)
                {
                    invalidResult = new BadRequest(validationResult.Errors.Select(x => x.ErrorMessage).ToList(), httpRequest);

                    string errors = string.Join(";", validationResult.Errors);

                    _logger.Warn(typeof(T).FullName + " failed validation, request invalid.");
                }
                else
                {
                    result = true;
                }
            }

            return(result);
        }
예제 #3
0
        private Result <Nothing, Error> Validate <T>(FluentValidation.IValidator <T> validator, T instance)
        {
            Guard.Against.Null(instance, nameof(instance));
            var result = validator.Validate(instance);

            if (result.IsValid)
            {
                return(Result.Success <Nothing, Error>(Nothing.Value));
            }
            else
            {
                return(Result.Failure <Nothing, Error>(new Error.ValidationFailed(result)));
            }
        }
예제 #4
0
        public ValidationResult Validate(Target target)
        {
            ValidationResult validationResult = new ValidationResult();

            if (target == null)
            {
                validationResult.AddValidationError(string.Empty, "Objeto é nulo");
                return(validationResult);
            }

            var fluent = validator.Validate(target);

            foreach (var item in fluent.Errors)
            {
                validationResult.AddValidationError(item.PropertyName, item.ErrorMessage);
            }

            return(validationResult);
        }