コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }