Beispiel #1
0
        private void ApplyMetadataConvenstions([NotNull] Type modelType, [NotNull] ModelMetadataRegistryItem item)
        {
            var properties = modelType.GetProperties();

            foreach (var convention in conventions)
            {
                var metadataConvention = convention;
                foreach (var pi in properties.Where(metadataConvention.IsApplicable))
                {
                    ModelMetadataItem metadataItem;
                    if (!item.PropertiesMetadata.TryGetValue(pi.Name, out metadataItem))
                    {
                        metadataItem = new ModelMetadataItem();
                        item.PropertiesMetadata.Add(pi.Name, metadataItem);
                    }

                    var conventionalItem = new ModelMetadataItem();
                    convention.Apply(pi, conventionalItem);
                    conventionalItem.MergeTo(metadataItem);
                }
            }

            item.IsConventionsApplied = true;
        }