BusinessRulesValidationResult Map(ValidationResult validationResult)
        {
            var result = new BusinessRulesValidationResult
            {
                Errors = validationResult.Errors.Select(x => new BusinessRuleException(x.ErrorMessage)).ToList()
            };

            return(result);
        }
        public BusinessRulesValidationResult Validate()
        {
            if (entityValidationResult == null)
            {
                var validator = GetBusinessRules();
                var type      = typeof(IBusinessRulesValidator <>).MakeGenericType(GetType());

                MethodInfo method = type.GetMethod("Validate");

                entityValidationResult = (BusinessRulesValidationResult)method.Invoke(validator, new object[] { this });
            }

            return(entityValidationResult);
        }