protected virtual ExtensionPropertyDto CreateExtensionPropertyDto(
            ExtensionPropertyConfiguration propertyConfig)
        {
            var extensionPropertyDto = new ExtensionPropertyDto
            {
                Type          = TypeHelper.GetFullNameHandlingNullableAndGenerics(propertyConfig.Type),
                TypeSimple    = TypeHelper.GetSimplifiedName(propertyConfig.Type),
                Attributes    = new List <ExtensionPropertyAttributeDto>(),
                DisplayName   = CreateDisplayNameDto(propertyConfig),
                Configuration = new Dictionary <string, object>(),
                Api           = new ExtensionPropertyApiDto
                {
                    OnGet = new ExtensionPropertyApiGetDto
                    {
                        IsAvailable = propertyConfig.Api.OnGet.IsAvailable
                    },
                    OnCreate = new ExtensionPropertyApiCreateDto
                    {
                        IsAvailable = propertyConfig.Api.OnCreate.IsAvailable
                    },
                    OnUpdate = new ExtensionPropertyApiUpdateDto
                    {
                        IsAvailable = propertyConfig.Api.OnUpdate.IsAvailable
                    }
                },
                Ui = new ExtensionPropertyUiDto
                {
                    OnCreateForm = new ExtensionPropertyUiFormDto
                    {
                        IsVisible = propertyConfig.UI.OnCreateForm.IsVisible
                    },
                    OnEditForm = new ExtensionPropertyUiFormDto
                    {
                        IsVisible = propertyConfig.UI.OnEditForm.IsVisible
                    },
                    OnTable = new ExtensionPropertyUiTableDto
                    {
                        IsVisible = propertyConfig.UI.OnTable.IsVisible
                    }
                }
            };

            foreach (var attribute in propertyConfig.Attributes)
            {
                extensionPropertyDto.Attributes.Add(
                    ExtensionPropertyAttributeDto.Create(attribute)
                    );
            }

            foreach (var customConfig in propertyConfig.Configuration.Where(c => !c.Key.StartsWith("_")))
            {
                extensionPropertyDto.Configuration[customConfig.Key] = customConfig.Value;
            }

            return(extensionPropertyDto);
        }
Exemplo n.º 2
0
        public static ExtensionPropertyAttributeDto Create(Attribute attribute)
        {
            var attributeType = attribute.GetType();
            var dto           = new ExtensionPropertyAttributeDto
            {
                Type          = TypeHelper.GetFullNameHandlingNullableAndGenerics(attributeType),
                TypeSimple    = TypeHelper.GetSimplifiedName(attributeType),
                Configuration = new Dictionary <string, object>()
            };

            if (attribute is StringLengthAttribute stringLengthAttribute)
            {
                dto.Configuration["MaximumLength"] = stringLengthAttribute.MaximumLength;
                dto.Configuration["MinimumLength"] = stringLengthAttribute.MinimumLength;
            }

            //TODO: Others!

            return(dto);
        }