|
|
@ -1,5 +1,6 @@ |
|
|
using System; |
|
|
using System; |
|
|
using System.Reflection; |
|
|
using System.Reflection; |
|
|
|
|
|
using Volo.Abp.Reflection; |
|
|
|
|
|
|
|
|
namespace Volo.Abp.Http.Modeling |
|
|
namespace Volo.Abp.Http.Modeling |
|
|
{ |
|
|
{ |
|
|
@ -15,11 +16,30 @@ namespace Volo.Abp.Http.Modeling |
|
|
//TODO: Validation rules for this property
|
|
|
//TODO: Validation rules for this property
|
|
|
public static PropertyApiDescriptionModel Create(PropertyInfo propertyInfo) |
|
|
public static PropertyApiDescriptionModel Create(PropertyInfo propertyInfo) |
|
|
{ |
|
|
{ |
|
|
|
|
|
string typeName; |
|
|
|
|
|
string simpleTypeName; |
|
|
|
|
|
|
|
|
|
|
|
if (TypeHelper.IsEnumerable(propertyInfo.PropertyType, out var itemType, includePrimitives: false)) |
|
|
|
|
|
{ |
|
|
|
|
|
typeName = $"[{ModelingTypeHelper.GetFullNameHandlingNullableAndGenerics(itemType)}]"; |
|
|
|
|
|
simpleTypeName = $"[{ModelingTypeHelper.GetSimplifiedName(itemType)}]"; |
|
|
|
|
|
} |
|
|
|
|
|
else if (TypeHelper.IsDictionary(propertyInfo.PropertyType, out var keyType, out var valueType)) |
|
|
|
|
|
{ |
|
|
|
|
|
typeName = $"{{{ModelingTypeHelper.GetFullNameHandlingNullableAndGenerics(keyType)}:{ModelingTypeHelper.GetFullNameHandlingNullableAndGenerics(valueType)}}}"; |
|
|
|
|
|
simpleTypeName = $"{{{ModelingTypeHelper.GetSimplifiedName(keyType)}:{ModelingTypeHelper.GetSimplifiedName(valueType)}}}"; |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
typeName = ModelingTypeHelper.GetFullNameHandlingNullableAndGenerics(propertyInfo.PropertyType); |
|
|
|
|
|
simpleTypeName = ModelingTypeHelper.GetSimplifiedName(propertyInfo.PropertyType); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
return new PropertyApiDescriptionModel |
|
|
return new PropertyApiDescriptionModel |
|
|
{ |
|
|
{ |
|
|
Name = propertyInfo.Name, |
|
|
Name = propertyInfo.Name, |
|
|
Type = ModelingTypeHelper.GetFullNameHandlingNullableAndGenerics(propertyInfo.PropertyType), |
|
|
Type = typeName, |
|
|
TypeSimple = ModelingTypeHelper.GetSimplifiedName(propertyInfo.PropertyType) |
|
|
TypeSimple = simpleTypeName |
|
|
}; |
|
|
}; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|