protected override string ResolveType(ITypeReference typeInfo) { if (typeInfo.HasStereotype("TypeScript")) { return(typeInfo.Stereotypes.GetPropertyValue <string>("TypeScript", "Type")); } return(typeInfo.Name); }
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); }
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)); }