public void AddProperties(StringBuilderWrapper sb, MetadataType type, bool includeResponseStatus)
{
var wasAdded = false;
var dataMemberIndex = 1;
if (type.Properties != null)
{
foreach (var prop in type.Properties)
{
if (wasAdded) sb.AppendLine();
var propType = Type(prop.GetTypeName(Config, allTypes), prop.GenericArgs);
var optional = "";
if (propType.EndsWith("?"))
{
propType = propType.Substring(0, propType.Length - 1);
optional = "?";
}
if (Config.MakePropertiesOptional)
optional = "?";
if (prop.Attributes.Safe().FirstOrDefault(x => x.Name == "Required") != null)
optional = "";
if (Config.ExportAsTypes && !type.IsInterface.GetValueOrDefault())
optional = "";
wasAdded = AppendComments(sb, prop.Description);
wasAdded = AppendDataMember(sb, prop.DataMember, dataMemberIndex++) || wasAdded;
wasAdded = AppendAttributes(sb, prop.Attributes) || wasAdded;
sb.AppendLine("{1}{2}: {0};".Fmt(propType, prop.Name.SafeToken().PropertyStyle(), optional));
}
}
if (includeResponseStatus)
{
if (wasAdded) sb.AppendLine();
AppendDataMember(sb, null, dataMemberIndex++);
sb.AppendLine("{0}{1}: ResponseStatus;".Fmt(
typeof(ResponseStatus).Name.PropertyStyle(), Config.ExportAsTypes ? "" : "?"));
}
}