protected override string ResolveType(ITypeReference typeInfo)
        {
            if (typeInfo.HasStereotype("TypeScript"))
            {
                return(typeInfo.Stereotypes.GetPropertyValue <string>("TypeScript", "Type"));
            }

            return(typeInfo.Name);
        }
예제 #2
0
        public static string GetQualifiedName(this IProjectItemTemplate template, ITypeReference typeInfo)
        {
            string result = typeInfo.Name;

            if (typeInfo.Type == ReferenceType.ClassType)
            {
                var templateInstance = template.Project.FindTemplateInstance <IHasClassDetails>(TemplateDependancy.OnModel <DTOModel>(TypescriptDtoTemplate.LocalIdentifier, (x) => x.Id == typeInfo.Id))
                                       ?? template.Project.FindTemplateInstance <IHasClassDetails>(TemplateDependancy.OnModel <DTOModel>(TypescriptDtoTemplate.RemoteIdentifier, (x) => x.Id == typeInfo.Id));
                if (templateInstance != null)
                {
                    result = $"{templateInstance.Namespace}.{templateInstance.ClassName}";
                }
            }
            else if (typeInfo.HasStereotype(StandardStereotypes.TypescriptType))
            {
                result = typeInfo.Stereotypes.GetPropertyValue <string>(StandardStereotypes.TypescriptType, "TypeName");
            }

            return(result);
        }
예제 #3
0
        protected override ResolvedTypeInfo ResolveType(ITypeReference typeInfo)
        {
            if (typeInfo == null)
            {
                return(null);
            }

            if (typeInfo.HasStereotype("SQL Type Override"))
            {
                return(new ResolvedTypeInfo(typeInfo.GetStereotypeProperty <string>("SQL Type Override", "Type Name"), true, null));
            }

            string result = null;

            switch (typeInfo.Element.Name)
            {
            case "binary":
                result = "VARBINARY";
                break;

            case "bool":
                result = "BIT";
                break;

            case "byte":
                result = "TINYINT";
                break;

            case "char":
                result = "CHAR";
                break;

            case "date":
                result = "DATE";
                break;

            case "datetime":
                result = "DATETIME";
                break;

            case "datetimeoffset":
                result = "DATETIMEOFFSET";
                break;

            case "decimal":
                result = $"DECIMAL({typeInfo.GetStereotypeProperty("Decimal Constraints", "Precision", "18")}, {typeInfo.GetStereotypeProperty("Decimal Constraints", "Scale", "2")})";
                break;

            case "double":
                result = "FLOAT";
                break;

            case "float":
                result = "FLOAT";
                break;

            case "guid":
                result = "UNIQUEIDENTIFIER";
                break;

            case "int":
                result = "INT";
                break;

            case "long":
                result = "BIGINT";
                break;

            case "object":
                throw new Exception("Cannot convert type 'object' to a valid SQL Data Type");
                break;

            case "short":
                result = "SMALLINT";
                break;

            case "string":
                var type = typeInfo.GetStereotypeProperty("Text Constraints", "SQL Data Type", "NVARCHAR").Replace("DEFAULT", "NVARCHAR");
                result = $"{type}({typeInfo.GetStereotypeProperty("Text Constraints", "MaxLength", typeInfo.GetStereotypeProperty("Text Constraints", "Max Length", "MAX"))})";
                break;
            }

            result += $" {(typeInfo.IsNullable ? "NULL" : "NOT NULL")}";

            return(new ResolvedTypeInfo(result, true, null));
        }