Пример #1
0
        public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            var provider = new DataAnnotationsModelMetadataProvider();
            OtherPropertyDisplayName = provider.GetMetadataForProperty(() => null, metadata.ContainerType, OtherProperty).DisplayName;

            var errorMessage = FormatErrorMessage(metadata.GetDisplayName());
            var typeName = metadata.DataTypeName ?? metadata.ModelType.Name;

            yield return new ModelClientValidationCompareValuesRule(OtherProperty, typeName, Operator, errorMessage);
        }
        public void DefaultRequiredClientValidationString()
        {
            var model = new MetadataTarget {LastName = "Arne", UserName = "******"};
            var metadataProvider = new DataAnnotationsModelMetadataProvider();
            var metadata = metadataProvider.GetMetadataForProperty(() => model, typeof (MetadataTarget), "UserName");

            var validator =
                _provider.GetValidators(metadata, new ControllerContext(new RequestContext(), new SomeController())).
                    Single();

            var clientRules = validator.GetClientValidationRules();

            Assert.True(validator.IsRequired);
            Assert.Equal("The UserName field is required.", clientRules.Single().ErrorMessage);
        }
        public void RequiredClientValidationString()
        {
            var model = new MetadataTarget {LastName = "Arne", UserName = "******"};
            var metadataProvider = new DataAnnotationsModelMetadataProvider();
            var metadata = metadataProvider.GetMetadataForProperty(() => model, typeof (MetadataTarget), "UserName");
            _stringProvider.Setup(k => k.GetValidationString(typeof (RequiredAttribute))).Returns(
                "Fältet '{0}' är humm!").Verifiable();

            var validator =
                _provider.GetValidators(metadata, new ControllerContext(new RequestContext(), new SomeController())).
                    Single();

            var clientRules = validator.GetClientValidationRules();

            Assert.True(validator.IsRequired);
            Assert.Equal("Fältet 'UserName' är humm!", clientRules.Single().ErrorMessage);
            _stringProvider.VerifyAll();
        }
        public void DefaultRequiredClientValidationString()
        {
            var model = new TestModel {
                RequiredStringLength10 = "Arne", Required = "Kalle"
            };
            var metadataProvider = new System.Web.Mvc.DataAnnotationsModelMetadataProvider();
            var metadata         = metadataProvider.GetMetadataForProperty(() => model, typeof(TestModel), "Required");

            _stringProvider.Setup(k => k.GetMessage(It.Is <IGetMessageContext>(x => x.Attribute is RequiredAttribute))).Returns(
                "The {0} field is required.").Verifiable();

            var validator =
                _provider.GetValidators(metadata, new ControllerContext(new RequestContext(), new SomeController())).
                First();

            var clientRules = validator.GetClientValidationRules();

            Assert.IsTrue(validator.IsRequired);
            Assert.AreEqual("The Required field is required.", clientRules.Single().ErrorMessage);
        }
        public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            var provider = new DataAnnotationsModelMetadataProvider();
            var otherPropertyMetadata = provider.GetMetadataForProperty(() => null, metadata.ContainerType, OtherProperty);

            var typeName = otherPropertyMetadata.DataTypeName;
            if (typeName == null)
            {
                var nullableType = Nullable.GetUnderlyingType(otherPropertyMetadata.ModelType);
                if (nullableType != null)
                {
                    typeName = nullableType.Name;
                }
                else
                {
                    typeName = otherPropertyMetadata.ModelType.Name;
                }
            }

            yield return new ModelClientValidationRequiredConditionalRule(OtherProperty, typeName, OtherPropertyValues, Any, Operator, FormatErrorMessage(metadata.GetDisplayName()));
        }
 private static ModelMetadata GetMetadataForCanUpdateProperty(string propertyName)
 {
     DataAnnotationsModelMetadataProvider metadataProvider = new DataAnnotationsModelMetadataProvider();
     return metadataProvider.GetMetadataForProperty(null, typeof(MyModelTestingCanUpdateProperty), propertyName);
 }
        public void RequiredClientValidationString()
        {
            var model = new TestModel { RequiredStringLength10 = "Arne", Required = "Kalle" };
            var metadataProvider = new DataAnnotationsModelMetadataProvider();
            var metadata = metadataProvider.GetMetadataForProperty(() => model, typeof(TestModel), "Required");
            _stringProvider.Setup(k => k.GetMessage(It.Is<IGetMessageContext>(x => x.Attribute is RequiredAttribute))).Returns(
                "Fältet '{0}' är humm!").Verifiable();

            var validator =
                _provider.GetValidators(metadata, new ControllerContext(new RequestContext(), new SomeController())).
                    First();

            var clientRules = validator.GetClientValidationRules();

            Assert.True(validator.IsRequired);
            Assert.Equal("Fältet 'Required' är humm!", clientRules.Single().ErrorMessage);
            _stringProvider.VerifyAll();
        }
 protected static ModelMetadata GetModelMetaDataForProperty(Type type, string propertyName, Func<object> modelCreator)
 {
     DataAnnotationsModelMetadataProvider modelMetadataProvider = new DataAnnotationsModelMetadataProvider();
     return modelMetadataProvider.GetMetadataForProperty(modelCreator, type, propertyName);
 }