public static string Fields(this CompositeType compositeType) { var indented = new IndentedStringBuilder(" "); var properties = compositeType.Properties; if (compositeType.BaseModelType != null) { indented.Append(compositeType.BaseModelType.Fields()); } // If the type is a paged model type, ensure the nextLink field exists // Note: Inject the field into a copy of the property list so as to not pollute the original list if ( compositeType is ModelTemplateModel && !String.IsNullOrEmpty((compositeType as ModelTemplateModel).NextLink)) { var nextLinkField = (compositeType as ModelTemplateModel).NextLink; foreach (Property p in properties) { p.Name = GoCodeNamer.PascalCaseWithoutChar(p.Name, '.'); if (p.Name.Equals(nextLinkField, StringComparison.OrdinalIgnoreCase)) { p.Name = nextLinkField; } } if (!properties.Any(p => p.Name.Equals(nextLinkField, StringComparison.OrdinalIgnoreCase))) { var property = new Property(); property.Name = nextLinkField; property.Type = new PrimaryType(KnownPrimaryType.String) { Name = "string" }; properties = new List<Property>(properties); properties.Add(property); } } // Emit each property, except for named Enumerated types, as a pointer to the type foreach (var property in properties) { EnumType enumType = property.Type as EnumType; if (enumType != null && enumType.IsNamed()) { indented.AppendFormat("{0} {1} {2}\n", property.Name, enumType.Name, property.JsonTag()); } else if (property.Type is DictionaryType) { indented.AppendFormat("{0} *{1} {2}\n", property.Name, (property.Type as MapType).FieldName, property.JsonTag()); } else { indented.AppendFormat("{0} *{1} {2}\n", property.Name, property.Type.Name, property.JsonTag()); } } return indented.ToString(); }
public string ConstructTSItemTypeName() { var builder = new IndentedStringBuilder(" "); builder.AppendFormat("<{0}>", ItemType.Name); return builder.ToString(); }
public string ConstructTSItemTypeName() { var builder = new IndentedStringBuilder(" "); builder.AppendFormat("<{0}>", ClientModelExtensions.TSType(ItemType, true)); return builder.ToString(); }
public void AppendFormatSupportsDifferentDataTypes(string expected, string format, object[] parameters) { IndentedStringBuilder sb = new IndentedStringBuilder(); var result = sb.AppendFormat(format, parameters); Assert.Equal(expected, result.ToString()); }