protected static ColumnDocumentInfo GetColumnDocumentInfo(List <PrimaryKey> pks, SqlColumn column) { var info = new ColumnDocumentInfo(); var descriptionProperty = column.Properties.OfType <SqlColumnDescription>().FirstOrDefault(); info.Description = ""; if (descriptionProperty != null) { info.Description = descriptionProperty.Description; } info.IsPk = pks.Any(pk => pk.SqlColumns.Any(cao => cao.SqlColumn == column)); info.Identity = column.Properties.OfType <Identity>().FirstOrDefault(); info.DefaultValue = column.Properties.OfType <DefaultValue>().FirstOrDefault(); return(info); }
protected void AddColumnsToTableSheet(SqlColumn column, ColumnDocumentInfo columnDocumentInfo, string firstColumn = null) { var table = column.Table; var sqlType = column.Type; if (firstColumn != null) { Write(table.SchemaAndTableName, firstColumn); } if (!Context.DocumenterSettings.NoInternalDataTypes) { Write(table.SchemaAndTableName, column.Name, sqlType.SqlTypeInfo.SqlDataType, sqlType.SqlTypeInfo.SqlDataType, sqlType.Length, sqlType.Scale, sqlType.IsNullable); } else { Write(table.SchemaAndTableName, column.Name, sqlType, sqlType.Length, sqlType.Scale, sqlType.IsNullable); } if (columnDocumentInfo.IsPk) { Write(table.SchemaAndTableName, true); } else { Write(table.SchemaAndTableName, ""); } if (columnDocumentInfo.Identity != null) { Write(table.SchemaAndTableName, $"IDENTITY ({columnDocumentInfo.Identity.Seed.ToString("D", CultureInfo.InvariantCulture)}, {columnDocumentInfo.Identity.Increment.ToString("D", CultureInfo.InvariantCulture)})"); } else { Write(table.SchemaAndTableName, ""); } if (columnDocumentInfo.DefaultValue != null) { Write(table.SchemaAndTableName, columnDocumentInfo.DefaultValue); } else { Write(table.SchemaAndTableName, ""); } Write(table.SchemaAndTableName, columnDocumentInfo.Description.Trim()); // "Foreign Key Name", "Referenced Table", "Link", "Referenced Column" var fkOnColumn = table.Properties.OfType <ForeignKey>().FirstOrDefault(fk => fk.ForeignKeyColumns.Any(fkc => fkc.ForeignKeyColumn.Name == column.Name)); if (fkOnColumn != null) { Write(table.SchemaAndTableName, fkOnColumn.Name); Write(table.SchemaAndTableName, Helper.GetSimplifiedSchemaAndTableName(fkOnColumn.ReferredTable.SchemaAndTableName)); WriteLink(table.SchemaAndTableName, "link", fkOnColumn.ReferredTable.SchemaAndTableName); Write(table.SchemaAndTableName, fkOnColumn.ForeignKeyColumns.First(fkc => fkc.ForeignKeyColumn.Name == column.Name).ReferredColumn.Name); } WriteLine(table.SchemaAndTableName); }