Ejemplo n.º 1
0
        private static void ExtractItem(
            System.Data.DataRow row
            , ActiveQueryBuilder.Core.MetadataItem mi
            , int parentID
            , System.Data.DataTable tbl
            )

        {
            row["ID"]               = tbl.Rows.Count;
            row["ParentID"]         = parentID;
            row["MetadataProvider"] = mi.SQLContext?.MetadataProvider?.Description;
            row["SyntaxProvider"]   = mi.SQLContext?.SyntaxProvider?.Description;
            if (mi.Parent != null)
            {
                row["ParentType"] = System.Enum.GetName(typeof(ActiveQueryBuilder.Core.MetadataType), mi.Parent.Type);
            }
            row[nameof(Type)] = System.Enum.GetName(typeof(ActiveQueryBuilder.Core.MetadataType), mi.Type);
            row["IsSystem"]   = mi.System;
            ////
            //string rootName = mi.Root?.Name;
            row["Server"]     = mi.Server?.Name;
            row["Database"]   = mi.Database?.Name;
            row["Schema"]     = mi.Schema?.Name;
            row["ObjectName"] = mi.Object?.Name;
            ////
            row["NameFullQualified"] = mi.NameFull + (mi.NameFull.EndsWith(".") ? "<?>" : string.Empty);
            row["NameQuoted"]        = mi.NameQuoted;
            row["AltName"]           = mi.AltName;
            row["Field"]             = mi.Name != null ? mi.Name : "<?>";
            ////
            row["HasDefault"]  = mi.Default;
            row["Description"] = mi.Description;
            row["Tag"]         = mi.Tag;
            row["UserData"]    = mi.UserData;
        }
Ejemplo n.º 2
0
 private static void ExtractSynonym(
     System.ComponentModel.BindingList <DataModel.MetadataItem> list,
     ActiveQueryBuilder.Core.MetadataItem mi,
     int parentID
     )
 {
     if (mi == null)
     {
         return;
     }
     var o = ExtractItem(list, mi, parentID);
     {
         ActiveQueryBuilder.Core.MetadataObject m = mi as ActiveQueryBuilder.Core.MetadataObject;
         o.ReferencedObject = m.ReferencedObject?.NameFull;
         //
         for (int i = 0; i < m.ReferencedObjectName.Count; i++)
         {
             ActiveQueryBuilder.Core.MetadataQualifiedNamePart x = m.ReferencedObjectName[i];
             o.ReferencedObjectName += "["
                                       + System.Enum.GetName(typeof(ActiveQueryBuilder.Core.MetadataType), x.Type)
                                       + ":"
                                       + x.Name
                                       + "]"
             ;
         }
     }
 }
Ejemplo n.º 3
0
        private static void ExtractField(
            System.Data.DataRow row
            , ActiveQueryBuilder.Core.MetadataItem mi
            , int parentID
            , System.Data.DataTable tbl
            )
        {
            if (mi == null)
            {
                return;
            }

            ExtractItem(row, mi, parentID, tbl);
            {
                ActiveQueryBuilder.Core.MetadataField m = mi as ActiveQueryBuilder.Core.MetadataField;
                row["Expression"]    = m.Expression;
                row["FieldType"]     = System.Enum.GetName(typeof(System.Data.DbType), m.FieldType);
                row["FieldTypeName"] = m.FieldTypeName;
                row["IsNullable"]    = m.Nullable;
                row["Precision"]     = m.Precision;
                row["Scale"]         = m.Scale;
                row[nameof(Size)]    = m.Size;
                row["IsPK"]          = m.PrimaryKey;
                row["IsRO"]          = m.ReadOnly;
            }
        }
Ejemplo n.º 4
0
        private static void ExtractSynonym(
            System.Data.DataRow row
            , ActiveQueryBuilder.Core.MetadataItem mi
            , int parentID
            , System.Data.DataTable tbl
            )
        {
            if (mi == null)
            {
                return;
            }

            ExtractItem(row, mi, parentID, tbl);
            {
                ActiveQueryBuilder.Core.MetadataObject m = mi as ActiveQueryBuilder.Core.MetadataObject;
                row["ReferencedObject"] = m.ReferencedObject?.NameFull;
                //
                for (int i = 0; i < m.ReferencedObjectName.Count; i++)
                {
                    ActiveQueryBuilder.Core.MetadataQualifiedNamePart x = m.ReferencedObjectName[i];
                    row["ReferencedObjectName"] += "["
                                                   + System.Enum.GetName(typeof(ActiveQueryBuilder.Core.MetadataType), x.Type)
                                                   + ":"
                                                   + x.Name
                                                   + "]"
                    ;
                }
            }
        }
Ejemplo n.º 5
0
        private static void ExtractMetadataItem(
            System.Data.DataRow row
            , ActiveQueryBuilder.Core.MetadataItem mi
            , int parentID
            , System.Data.DataTable tbl
            )
        {
            switch (mi.Type)
            {
            case ActiveQueryBuilder.Core.MetadataType.Database:
            case ActiveQueryBuilder.Core.MetadataType.Schema:
                ExtractNamespace(row, mi, parentID, tbl);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Table:
            case ActiveQueryBuilder.Core.MetadataType.View:
                ExtractTable(row, mi, parentID, tbl);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Procedure:
                ExtractProcedure(row, mi, parentID, tbl);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Synonym:
                ExtractSynonym(row, mi, parentID, tbl);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Field:
                ExtractField(row, mi, parentID, tbl);
                break;

            case ActiveQueryBuilder.Core.MetadataType.ForeignKey:
                ExtractForeignKey(row, mi, parentID, tbl);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Root:
            case ActiveQueryBuilder.Core.MetadataType.Server:
            case ActiveQueryBuilder.Core.MetadataType.Package:
            case ActiveQueryBuilder.Core.MetadataType.Namespaces:
            case ActiveQueryBuilder.Core.MetadataType.ObjectMetadata:
            case ActiveQueryBuilder.Core.MetadataType.Objects:
            case ActiveQueryBuilder.Core.MetadataType.Aggregate:
            case ActiveQueryBuilder.Core.MetadataType.Parameter:
            case ActiveQueryBuilder.Core.MetadataType.UserQuery:
            case ActiveQueryBuilder.Core.MetadataType.UserField:
            case ActiveQueryBuilder.Core.MetadataType.All:
            default:
                ExtractItem(row, mi, parentID, tbl);
                break;
            }
        }
Ejemplo n.º 6
0
 private static void ExtractTable(
     System.ComponentModel.BindingList <DataModel.MetadataItem> list,
     ActiveQueryBuilder.Core.MetadataItem mi,
     int parentID
     )
 {
     if (mi == null)
     {
         return;
     }
     var o = ExtractItem(list, mi, parentID);
     {
         ActiveQueryBuilder.Core.MetadataObject m = mi as ActiveQueryBuilder.Core.MetadataObject;
     }
 }
Ejemplo n.º 7
0
 private static void ExtractNamespace(
     System.ComponentModel.BindingList <AQBTest.MetadataItemFQN> list,
     ActiveQueryBuilder.Core.MetadataItem mi,
     int parentID
     )
 {
     if (mi == null)
     {
         return;
     }
     var o = ExtractItem(list, mi, parentID);
     {
         ActiveQueryBuilder.Core.MetadataNamespace m = mi as ActiveQueryBuilder.Core.MetadataNamespace;
     }
 }
Ejemplo n.º 8
0
 private static void ExtractTable(
     System.Data.DataRow row
     , ActiveQueryBuilder.Core.MetadataItem mi
     , int parentID
     , System.Data.DataTable tbl
     )
 {
     if (mi == null)
     {
         return;
     }
     ExtractItem(row, mi, parentID, tbl);
     {
         //ActiveQueryBuilder.Core.MetadataObject m = mi as ActiveQueryBuilder.Core.MetadataObject;
     }
 }
Ejemplo n.º 9
0
        private static void ExtractForeignKey(
            System.ComponentModel.BindingList <DataModel.MetadataItem> list,
            ActiveQueryBuilder.Core.MetadataItem mi,
            int parentID
            )
        {
            if (mi == null)
            {
                return;
            }
            var o = ExtractItem(list, mi, parentID);

            o.FieldType = null;
            {
                ActiveQueryBuilder.Core.MetadataForeignKey m = mi as ActiveQueryBuilder.Core.MetadataForeignKey;
                o.ReferencedObject = m.ReferencedObject.NameFull;
                //
                for (int i = 0; i < m.ReferencedObjectName.Count; i++)
                {
                    ActiveQueryBuilder.Core.MetadataQualifiedNamePart x = m.ReferencedObjectName[i];
                    o.ReferencedObjectName += "["
                                              + System.Enum.GetName(typeof(ActiveQueryBuilder.Core.MetadataType), x.Type)
                                              + ":"
                                              + x.Name
                                              + "]"
                    ;
                }
                //
                o.ReferencedFieldsCount = m.ReferencedFields.Count;
                for (int i = 0; i < m.ReferencedFields.Count; i++)
                {
                    o.ReferencedFields += "[" + m.ReferencedFields[i] + "]"
                    ;
                }
                //
                o.ReferencedCardinality = System.Enum.GetName(typeof(ActiveQueryBuilder.Core.MetadataForeignKeyCardinality), m.ReferencedCardinality);
                //
                o.FieldsCount = m.Fields.Count;
                for (int i = 0; i < m.Fields.Count; i++)
                {
                    o.Fields += "[" + m.Fields[i] + "]"
                    ;
                }
                //
                o.Cardinality = System.Enum.GetName(typeof(ActiveQueryBuilder.Core.MetadataForeignKeyCardinality), m.Cardinality);
            }
        }
Ejemplo n.º 10
0
        private static void ExtractForeignKey(
            System.Data.DataRow row
            , ActiveQueryBuilder.Core.MetadataItem mi
            , int parentID
            , System.Data.DataTable tbl
            )
        {
            if (mi == null)
            {
                return;
            }

            ExtractItem(row, mi, parentID, tbl);
            row["FieldType"] = null;
            {
                ActiveQueryBuilder.Core.MetadataForeignKey m = mi as ActiveQueryBuilder.Core.MetadataForeignKey;
                row["ReferencedObject"] = m.ReferencedObject.NameFull;
                //
                for (int i = 0; i < m.ReferencedObjectName.Count; i++)
                {
                    ActiveQueryBuilder.Core.MetadataQualifiedNamePart x = m.ReferencedObjectName[i];
                    row["ReferencedObjectName"] += "["
                                                   + System.Enum.GetName(typeof(ActiveQueryBuilder.Core.MetadataType), x.Type)
                                                   + ":"
                                                   + x.Name
                                                   + "]"
                    ;
                }
                //
                row["ReferencedFieldsCount"] = m.ReferencedFields.Count;
                for (int i = 0; i < m.ReferencedFields.Count; i++)
                {
                    row["ReferencedFields"] += "[" + m.ReferencedFields[i] + "]";
                }
                //
                row["ReferencedCardinality"] = System.Enum.GetName(typeof(ActiveQueryBuilder.Core.MetadataForeignKeyCardinality), m.ReferencedCardinality);
                //
                row["FieldsCount"] = m.Fields.Count;
                for (int i = 0; i < m.Fields.Count; i++)
                {
                    row["Fields"] += "[" + m.Fields[i] + "]"
                    ;
                }
                //
                row["Cardinality"] = System.Enum.GetName(typeof(ActiveQueryBuilder.Core.MetadataForeignKeyCardinality), m.Cardinality);
            }
        }
Ejemplo n.º 11
0
        private static DataModel.MetadataItem ExtractItem(
            System.ComponentModel.BindingList <DataModel.MetadataItem> list,
            ActiveQueryBuilder.Core.MetadataItem mi,
            int parentID
            )
        {
            var o = new DataModel.MetadataItem( );

            {
                o.MetadataProvider = mi.SQLContext?.MetadataProvider.Description;
                o.SyntaxProvider   = mi.SQLContext?.SyntaxProvider.Description;
                o.ID       = list.Count;
                o.ParentID = parentID;
                if (mi.Parent != null)
                {
                    o.ParentType = System.Enum.GetName(typeof(ActiveQueryBuilder.Core.MetadataType), mi.Parent.Type);
                }
                o.Type     = System.Enum.GetName(typeof(ActiveQueryBuilder.Core.MetadataType), mi.Type);
                o.IsSystem = mi.System;
                //
                // o.RootName = item.Root?.Name;
                o.Server     = mi.Server?.Name;
                o.Database   = mi.Database?.Name;
                o.Schema     = mi.Schema?.Name;
                o.ObjectName = mi.Object?.Name;
                //
                o.NameFullQualified  = mi.NameFull;
                o.NameFullQualified += mi.NameFull.EndsWith(".") ? "<?>" : "";
                o.NameQuoted         = mi.NameQuoted;
                o.AltName            = mi.AltName;
                o.Field              = mi.Name != null ? mi.Name : "<?>";
                //
                //
                o.HasDefault  = mi.Default;
                o.Description = mi.Description;
                o.Tag         = mi.Tag;
                o.UserData    = mi.UserData;
            }
            list.Add(o);
            return(o);
        }
Ejemplo n.º 12
0
 private static void ExtractField(
     System.ComponentModel.BindingList <DataModel.MetadataItem> list,
     ActiveQueryBuilder.Core.MetadataItem mi,
     int parentID
     )
 {
     if (mi == null)
     {
         return;
     }
     var o = ExtractItem(list, mi, parentID);
     {
         ActiveQueryBuilder.Core.MetadataField m = mi as ActiveQueryBuilder.Core.MetadataField;
         o.Expression    = m.Expression;
         o.FieldType     = System.Enum.GetName(typeof(System.Data.DbType), m.FieldType);
         o.FieldTypeName = m.FieldTypeName;
         o.IsNullable    = m.Nullable;
         o.Precision     = m.Precision;
         o.Scale         = m.Scale;
         o.Size          = m.Size;
         o.IsPK          = m.PrimaryKey;
         o.IsRO          = m.ReadOnly;
     }
 }
Ejemplo n.º 13
0
        }         // buildBindingList(...)

        private static void ExtractMetadataItem(
            System.ComponentModel.BindingList <DataModel.MetadataItem> list,
            ActiveQueryBuilder.Core.MetadataItem mi,
            int parentID
            )
        {
            if (mi == null)
            {
                return;
            }
            switch (mi.Type)
            {
            case ActiveQueryBuilder.Core.MetadataType.Root:
                ExtractItem(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Server:
                ExtractItem(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Database:
                ExtractNamespace(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Schema:
                ExtractNamespace(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Package:
                ExtractItem(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Namespaces:
                ExtractItem(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Table:
                ExtractTable(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.View:
                ExtractTable(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Procedure:
                ExtractProcedure(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Synonym:
                ExtractSynonym(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Objects:
                ExtractItem(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Aggregate:
                ExtractItem(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Parameter:
                ExtractItem(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.Field:
                ExtractField(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.ForeignKey:
                ExtractForeignKey(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.ObjectMetadata:
                ExtractItem(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.UserQuery:
                ExtractItem(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.UserField:
                ExtractItem(list, mi, parentID);
                break;

            case ActiveQueryBuilder.Core.MetadataType.All:
                ExtractItem(list, mi, parentID);
                break;

            default:
                ExtractItem(list, mi, parentID);
                break;
            } // switch()...
        }