public ValidationCollected WithMessage(string message)

        {
            _message = message;



            //collect validation

            if (_validationCollected == null)

            {
                _validationCollected = new ValidationCollected();
            }



            //Only store invalid values, in-case want to get all message

            _validationCollected.Add(_hasValidation, _validateFuncs, _message);



            return(_validationCollected);
        }
        public FluentValidation(ValidationCollected validationCollected, bool hasValidation)

        {
            _hasValidation = hasValidation;

            _validationCollected = validationCollected;

            _validateFuncs = new List <Func <bool> >();
        }
        public static FluentValidation When <TValidator>

            (this ValidationCollected validationCollected,

            TValidator subject,

            Expression <Func <TValidator, bool> > expressionProperty)

        {
            Func <TValidator, bool> func = expressionProperty.Compile();

            bool hasValidation = func(subject);



            return(new FluentValidation(validationCollected, hasValidation));
        }