Exemplo n.º 1
0
        public static object ToSchemaObject(this TableSchema table)
        {
            var columns  = table.Columns.ToSchemaObject();
            var indicies = table.Indexes.ToSchemaObject();

            var columnItem = new
            {
                count = columns.Length,
                items = columns
            };

            var indicesItem = new
            {
                count = indicies.Length,
                items = indicies
            };

            return(new
            {
                name = table.Name,
                isRoot = table.IsRoot(),
                parents = table.GetParents().ToNameArray(),
                desc = table.Description,
                fullName = table.FullName,
                hasPk = table.HasPrimaryKey,
                owner = table.Owner,
                sortName = table.SortName,
                delFlag = (table.GetDeleteFlagColumn() == null ? string.Empty : table.GetDeleteFlagColumn().Name),
                singularUidColumn = (table.GetSingularIdentifierColumn() == null ? string.Empty : table.GetSingularIdentifierColumn().Name),
                singularPkColumn = (table.GetSingularKeyColumn() == null ? string.Empty : table.GetSingularKeyColumn().Name),
                versionDateColumn = (table.GetVersionDateColumn() == null ? string.Empty : table.GetVersionDateColumn().Name),
                versionUserColumn = (table.GetVersionUserColumn() == null ? string.Empty : table.GetVersionUserColumn().Name),
                hasCompositeKey = table.HasCompositePrimaryKey(),
                hasCrossSchemaRelationships = table.HasCrossSchemaRelationships(),
                hasDefaultOwner = table.HasDefaultOnwer(),
                hasDeleteFlag = table.HasDeleteFlag(),
                hasForeignKeys = table.HasForeignKeys(),
                hasUidColumns = table.HasIdentifierColumns(),
                hasMultipleUidColumns = table.HasMultipleIdentifierColumns(),
                hasSingleUidColumn = table.HasSingleIdentifierColumn(),
                hasSingularKey = table.HasSingularPrimaryKey(),
                hasUniqueIndicies = table.HasUniqueIndices(),
                hasVersionDate = table.HasVersionDateColumn(),
                hasVersionUser = table.HasVersionUserColumn(),
                columns = columnItem,
                indices = indicesItem,
                auditColumns = table.GetAuditColumns().ToNameArray(),
                children = table.GetChildren().ToNameArray(),
                uidColumns = table.GetIdentifierColumns().ToNameArray(),
                fkColumns = table.ForeignKeyColumns.ToNameArray(),
                nonFkColumns = table.NonForeignKeyColumns.ToNameArray(),
                nonKeyColumns = table.NonKeyColumns.ToNameArray(),
                nonPkColumns = table.NonPrimaryKeyColumns.ToNameArray(),
                nonPkIndices = table.Indexes.GetNonPkIndices().ToNameArray()
            });
        }