public CodeGenerationModel AddProperty(string name, ModelPropertyType propertyType, bool isRequired = false) { var property = new ModelProperty { Entity = _currentEntity, Name = name, PropertyType = propertyType, IsRequired = isRequired }; _currentEntity.Properties.Add(property); return(this); }
private static ModelPropertyType ToGenericModelPropertyType(this Type type) { if (!type.IsGenericType) { return(type.ToModelPropertyType()); } var modelPropertyType = new ModelPropertyType { LogicalType = ModelPropertyLogicalType.Object, ObjectTypeName = type.Name.Substring(0, type.Name.IndexOf("`", StringComparison.Ordinal)) }; foreach (var argumentType in type.GetGenericArguments()) { modelPropertyType.GenericArgumentTypes.Add(argumentType.ToModelPropertyType()); } return(modelPropertyType); }
private static ModelPropertyType ToGenericModelPropertyType(this TypeReference typeReference) { if (!typeReference.IsGenericInstance) { return(typeReference.ToModelPropertyType()); } var modelPropertyType = new ModelPropertyType { LogicalType = ModelPropertyLogicalType.Object, ObjectTypeName = typeReference.Name.Substring(0, typeReference.Name.IndexOf("`", StringComparison.Ordinal)) }; var genericTypeReference = (GenericInstanceType)typeReference; foreach (var genericArgument in genericTypeReference.GenericArguments) { modelPropertyType.GenericArgumentTypes.Add(genericArgument.ToModelPropertyType()); } return(modelPropertyType); }