예제 #1
0
        private PropertyDisplayMetadata GetPropertyMetadataCore(PropertyCulturePair pair)
        {
            var metadata = basePropertyDisplayMetadataProvider.GetPropertyMetadata(pair.PropertyInfo);

            if (string.IsNullOrEmpty(metadata.DisplayName))
            {
                metadata.DisplayName = propertyDisplayNames.GetString(pair.PropertyInfo.DeclaringType.Name + "_" + pair.PropertyInfo.Name)
                                       ?? propertyDisplayNames.GetString(pair.PropertyInfo.Name);
            }

            return(metadata);
        }
예제 #2
0
        private PropertyDisplayMetadata GetPropertyMetadataCore(PropertyCulturePair pair)
        {
            var displayAttribute       = pair.PropertyInfo.GetCustomAttribute <DisplayAttribute>();
            var displayFormatAttribute = pair.PropertyInfo.GetCustomAttribute <DisplayFormatAttribute>();
            var dataTypeAttribute      = pair.PropertyInfo.GetCustomAttribute <DataTypeAttribute>();
            var styleAttribute         = pair.PropertyInfo.GetCustomAttribute <StyleAttribute>();
            var visibilityFilters      = pair.PropertyInfo.GetCustomAttributes().OfType <IVisibilityFilter>().ToArray();
            var editableFilter         = pair.PropertyInfo.GetCustomAttribute <EditableAttribute>();

            return(new PropertyDisplayMetadata()
            {
                PropertyInfo = pair.PropertyInfo,
                DisplayName = displayAttribute?.GetName(),
                Order = displayAttribute?.GetOrder(),
                GroupName = displayAttribute?.GetGroupName(),
                FormatString = displayFormatAttribute?.DataFormatString,
                NullDisplayText = displayFormatAttribute?.NullDisplayText,
                AutoGenerateField = displayAttribute?.GetAutoGenerateField() ?? true,
                DataType = dataTypeAttribute?.DataType,
                VisibilityFilters = visibilityFilters,
                Styles = styleAttribute,
                IsEditAllowed = editableFilter?.AllowEdit != false
            });
        }