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); }
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); }