public FluentConfigurationDisplayConvensionTests()
        {
            registry = new ModelMetadataRegistry();
            provider = new ExtendedModelMetadataProvider(registry);
            metadataConfiguration = new DummyDisplayModelConfiguration();

            registry.RegisterModelProperties(metadataConfiguration.ModelType, metadataConfiguration.Configurations);

            LocalizationConventions.Enabled = true;
            LocalizationConventions.RequireConventionAttribute = false;
        }
Esempio n. 2
0
        /// <summary>
        /// Executes the task. Returns continuation of the next task(s) in the chain.
        /// </summary>
        /// <returns></returns>
        public override TaskContinuation Execute()
        {
            IEnumerable <Type> concreteTypes = Container.GetService <IBuildManager>().ConcreteTypes;

            concreteTypes.Where(type => KnownTypes.ModelMetadataConfigurationType.IsAssignableFrom(type))
            .Each(type => Container.RegisterAsTransient(KnownTypes.ModelMetadataConfigurationType, type));

            IEnumerable <IModelMetadataConfiguration> configurations = Container.GetServices <IModelMetadataConfiguration>();

            IModelMetadataRegistry registry = Container.GetService <IModelMetadataRegistry>();

            configurations.Each(configuration => registry.RegisterModelProperties(configuration.ModelType, configuration.Configurations));

            IList <ModelValidatorProvider> validatorProviders = new List <ModelValidatorProvider>(ModelValidatorProviders.Providers);

            validatorProviders.Insert(0, new ExtendedModelValidatorProvider());
            CompositeModelValidatorProvider compositeModelValidatorProvider = new CompositeModelValidatorProvider(validatorProviders.ToArray());

            ModelMetadataProviders.Current = new ExtendedModelMetadataProvider(registry);
            ModelValidatorProviders.Providers.Clear();
            ModelValidatorProviders.Providers.Add(compositeModelValidatorProvider);

            return(TaskContinuation.Continue);
        }
        public static IDictionary<string, ModelMetadataItem> RegisterExtendedModelMetadata(
            Type modelType,
            ExtendedModelMetadataProvider metadataProvider,
            IModelMetadataRegistry extMetadataRegistry)
        {
            var modelMetadata = ModelMetadataProviders.Current.GetMetadataForType(
                () => Activator.CreateInstance(modelType),
                modelType);

            var extModelMetadataItem = CreateModelMetadataItem(modelMetadata, modelType.GetCustomAttributes());
            var extModelMetadataProperties = new Dictionary<string, ModelMetadataItem>();
            var modelTypeProperties = modelType.GetProperties();
            foreach (var property in modelMetadata.Properties)
            {
                var modelProperty = modelTypeProperties.Single(p => p.Name == property.PropertyName);
                extModelMetadataProperties.Add(property.PropertyName, CreateModelMetadataItem(property, modelProperty.GetCustomAttributes()));
            }

            extMetadataRegistry.RegisterModel(modelType, extModelMetadataItem);
            extMetadataRegistry.RegisterModelProperties(modelType, extModelMetadataProperties);

            return extMetadataRegistry.GetModelPropertiesMetadata(modelType);
        }