Esempio n. 1
0
        public void Initialize(RepositoryExtensionFactory.ExtensionEvents events, IConfiguration config)
        {
            events.AddtoValidateEntity(e =>
            {
                if (e.Entity is IValidate)
                {
                    IValidate model = e.Entity as IValidate;
                    e.Result        = model.ValidateModel(model);
                }
                else
                {
                    AttributedValidatorFactory validatorFactory = new AttributedValidatorFactory();

                    var validator = validatorFactory.GetValidator(e.Entity.GetType());
                    ValidationResult validationResults = validator.Validate(e.Entity);

                    IList <IValidationError> errors = new List <IValidationError>();


                    foreach (var error in validationResults.Errors)
                    {
                        errors.Add(new GenericValidationError {
                            PropertyName = error.PropertyName, ValidationError = error.ErrorMessage
                        });
                    }
                    IValidationResult ErrorResult = new GenericValidationResult {
                        IsValid = validationResults.IsValid, Errors = errors
                    };
                    e.Result = ErrorResult;
                }
            });
        }
Esempio n. 2
0
        private ValidationResult GetValidationResult()
        {
            var attributeFactory = new AttributedValidatorFactory();

            var type = this.GetType();

            var validator = attributeFactory.GetValidator(type);

            var results = validator.Validate(this);

            return(results);
        }
Esempio n. 3
0
        public void can_parse_pie_fiel_without_error()
        {
            var file = Path.Combine("Data",
                         Path.Combine("Pies",
                         Path.Combine("radarsensor.pie")));
            var f = new AttributedValidatorFactory();
            var txt = File.ReadAllText( file );
            Console.WriteLine( "Parsing: {0}", file );
            var pie = PieGrammar.Pie.Parse( txt );
            //            PieGrammar.Pie.parse

            var v = f.GetValidator<Pie>();
            v.Validate( pie ).IsValid.Should().BeTrue();
        }
Esempio n. 4
0
        protected void Validate(object entity, EntityMode mode)
        {
            if (entity == null || mode != EntityMode.Poco)
            {
                return;
            }

            var validator = validatorFactory.GetValidator(entity.GetType());
            var result    = validator != null?validator.Validate(entity) : emptyValidationResult;

            if (!result.IsValid)
            {
                throw new ValidationException(result.Errors);
            }
        }
Esempio n. 5
0
        public void can_parse_pie_fiel_without_error()
        {
            var file = Path.Combine("Data",
                                    Path.Combine("Pies",
                                                 Path.Combine("radarsensor.pie")));
            var f   = new AttributedValidatorFactory();
            var txt = File.ReadAllText(file);

            Console.WriteLine("Parsing: {0}", file);
            var pie = PieGrammar.Pie.Parse(txt);
            //            PieGrammar.Pie.parse

            var v = f.GetValidator <Pie>();

            v.Validate(pie).IsValid.Should().BeTrue();
        }
Esempio n. 6
0
        public void PersonViewModel_Valid()
        {
            var personViewModel = new PersonViewModel()
            {
                FirstName   = new ValidatableProperty <string>("John"),
                LastName    = new ValidatableProperty <string>("Doe"),
                DateOfBirth = new ValidatableProperty <System.DateTime>(System.DateTime.Now.AddYears(-20))
            };

            var attributeFactory = new AttributedValidatorFactory();

            var type = personViewModel.GetType();

            var validator = attributeFactory.GetValidator(type);

            var results = validator.Validate(personViewModel);

            Assert.IsTrue(results.IsValid);
        }
Esempio n. 7
0
        public void PersonViewModel_New()
        {
            var personViewModel = new PersonViewModel();

            var attributeFactory = new AttributedValidatorFactory();

            var type = personViewModel.GetType();

            var validator = attributeFactory.GetValidator(type);

            var results = validator.Validate(personViewModel);

            Assert.IsFalse(results.IsValid);

            Assert.AreEqual($"'{nameof(PersonViewModel.FirstName)}' must not be empty.", results.Errors[0].ErrorMessage);

            Assert.AreEqual($"'{nameof(PersonViewModel.LastName)}' must not be empty.", results.Errors[1].ErrorMessage);

            Assert.AreEqual($"'{nameof(PersonViewModel.DateOfBirth)}' should not be empty.", results.Errors[2].ErrorMessage);
        }
Esempio n. 8
0
        public void can_parse_all_pie_fiels_without_error()
        {
            Console.WriteLine (Directory.GetCurrentDirectory());

            var files = Directory.GetFiles( Path.Combine("..",
                                            Path.Combine("..",
                                            Path.Combine("..",
                                            Path.Combine("Data",
                                            Path.Combine("3.1_b4-objects",
                                            Path.Combine("pies")))))), "*.pie" );
            var f = new AttributedValidatorFactory();

            foreach( var file in files )
            {
                var txt = File.ReadAllText( file );
                Console.WriteLine("Parsing: {0}", file);
                var pie = PieGrammar.Pie.Parse( txt );

                var v = f.GetValidator<Pie>();
                v.Validate( pie ).IsValid.Should().BeTrue();
            }
        }
Esempio n. 9
0
        public void can_parse_all_pie_fiels_without_error()
        {
            Console.WriteLine(Directory.GetCurrentDirectory());

            var files = Directory.GetFiles(Path.Combine("..",
                                                        Path.Combine("..",
                                                                     Path.Combine("..",
                                                                                  Path.Combine("Data",
                                                                                               Path.Combine("3.1_b4-objects",
                                                                                                            Path.Combine("pies")))))), "*.pie");
            var f = new AttributedValidatorFactory();

            foreach (var file in files)
            {
                var txt = File.ReadAllText(file);
                Console.WriteLine("Parsing: {0}", file);
                var pie = PieGrammar.Pie.Parse(txt);


                var v = f.GetValidator <Pie>();
                v.Validate(pie).IsValid.Should().BeTrue();
            }
        }
Esempio n. 10
0
        public void PersonViewModel_HasName()
        {
            var personViewModel = new PersonViewModel()
            {
                FirstName   = new ValidatableProperty <string>("John"),
                LastName    = new ValidatableProperty <string>("Doe"),
                DateOfBirth = new ValidatableProperty <DateTime>(DateTime.Now.AddYears(-10))
            };

            var attributeFactory = new AttributedValidatorFactory();

            var type = personViewModel.GetType();

            var validator = attributeFactory.GetValidator(type);

            var results = validator.Validate(personViewModel);

            Assert.IsFalse(results.IsValid);

            Assert.AreEqual(1, results.Errors.Count);

            Assert.AreEqual($"Age must be greater or equal to 18", results.Errors[0].ErrorMessage);
        }
Esempio n. 11
0
 protected Validable()
 {
     validator = validationFactory.GetValidator(this.GetType());
 }