Example #1
0
 public virtual bool Action(DbObject dbObject)
 {
     if (mToSkip.Contains(dbObject) == false)
     {
         FixIdentifiers(dbObject, ObjectType.COLUMN, dbObject.Identifiers);
     }
     return(false);
 }
        // NOTHING TODO
        #endregion

        #region StringLiteral
        // NOTHING TODO
        #endregion

        #region DbObject
        public virtual bool Action(DbObject child)
        {
            if (child.Identifiers != null)
            {
                Stringifier str = new Stringifier();
                child.Assembly(str);
                _HTML += str.Statement;
            }

            return(false);
        }
Example #3
0
 private void AddNote(DbObject node, string id, string note)
 {
     if (node != null)
     {
         if (node.Identifiers.Last() != null)
         {
             node.Identifiers.Last().AddNote(id, note);
         }
         else
         {
             node.AddNote(id, note);
         }
     }
 }
Example #4
0
        void FixIdentifiers(DbObject node, ObjectType type, IList <Identifier> identifiers)
        {
            string objName = string.Empty;

            for (int j = 0; j < identifiers.Count; j++)
            {
                if (identifiers[j].Name == "dbo" || identifiers[j].Name == "[dbo]" || string.IsNullOrEmpty(identifiers[j].Name))
                {
                    identifiers.RemoveAt(j);
                    j--;
                    continue;
                }
                if (identifiers[j].Type == IdentifierType.Bracketed)
                {
                    identifiers[j].Type = IdentifierType.Quoted;
                }
                objName += identifiers[j].Name + ".";
            }

            objName = objName.TrimEnd('.');

            switch (type)
            {
            case ObjectType.COLUMN:
            case ObjectType.CONSTRAINT:
            case ObjectType.INDEX:
                AddDbObjectToTableNodesList(identifiers, type, objName, node);
                break;

            case ObjectType.TYPE:
            case ObjectType.VIEW:
            case ObjectType.TRIGGER:
            case ObjectType.PROCEDURE:
            case ObjectType.OTHER:
                AddDbObjectToNodesList(identifiers, type, objName, node);
                break;

            case ObjectType.TABLE:
                if (objName.ToUpper() != "DUMMY")
                {
                    AddDbObjectToNodesList(identifiers, type, objName, node);
                    TrimTables(mTableNodes);
                }
                break;
            }

            AddNote(node, Note.DEBUG_CASEFIXER, "Object " + type.ToString() + " '" + objName + "' cought");
        }
Example #5
0
        private List <IdentifierRequest> CreateUniqueRequestsList(List <KeyValuePair <DbObject, List <DbObjectTableSource> > > list)
        {
            List <IdentifierRequest> uniqueRequests = new List <IdentifierRequest>();

            foreach (KeyValuePair <DbObject, List <DbObjectTableSource> > record in list)
            {
                DbObject node = record.Key;
                if (node == null)
                {
                    continue;
                }

                List <DbObjectTableSource> availTables = record.Value;
                IdentifierRequest          dbRec       = null;
                bool addNew = true;

                foreach (IdentifierRequest rq in uniqueRequests)
                {
                    if (rq.HaveSameName(node))
                    {
                        // column name already in list, check the tables
                        if (rq.EqualsTables(availTables))
                        {
                            rq.mObjects.Add(node);
                            addNew = false;
                        }
                    }
                }

                if (addNew)
                {
                    dbRec       = new IdentifierRequest();
                    dbRec.mName = node.Identifiers.Last().Name;

                    foreach (DbObjectTableSource tSource in availTables)
                    {
                        dbRec.mTables.Add(IdentifierRequest.GetSimpleFullName(tSource.DbObject));
                    }

                    dbRec.mObjects.Add(node);
                    uniqueRequests.Add(dbRec);
                }
            }

            return(uniqueRequests);
        }
Example #6
0
 void FixIdentifier(DbObject node, ObjectType type, Identifier identifier)
 {
     FixIdentifiers(node, type, new List <Identifier> {
         identifier
     });
 }
Example #7
0
 void AddDbObjectToTableNodesList(IList <Identifier> identifiers, ObjectType type, string objName, DbObject node)
 {
     if (CheckAndQuoteIdentifiers(identifiers, type, objName, node))
     {
         List <KeyValuePair <DbObject, List <DbObjectTableSource> > > list = GetDbObjectTableNodeListByType(type);
         if (list != null)
         {
             string table = (objName.LastIndexOf('.') > 0) ? objName.Substring(0, objName.LastIndexOf('.')) : string.Empty;
             list.Add(new KeyValuePair <DbObject, List <DbObjectTableSource> >(node, GetPosibleTables(table)));
         }
     }
 }
Example #8
0
        void AddDbObjectToNodesList(IList <Identifier> identifiers, ObjectType type, string objName, DbObject node)
        {
            if (CheckAndQuoteIdentifiers(identifiers, type, objName, node))
            {
                List <DbObjectNode> list = GetDbObjectNodeListByType(type);

                if (list != null)
                {
                    DbObjectNode objNode = new DbObjectNode(objName, ObjectType.TYPE, node as DbObject);
                    list.Add(objNode);
                }
            }
        }
Example #9
0
        bool CheckAndQuoteIdentifiers(IList <Identifier> identifiers, ObjectType type, string objName, DbObject node)
        {
            if (identifiers.DefaultIfEmpty().Last() != null)
            {
                if (Config.UseCaseFixer == false || type == ObjectType.OTHER)
                {
                    QuoteLastIdentifierIfNeeded(identifiers);
                }
            }
            else
            {
                AddNote(node, Note.DEBUG_CASEFIXER, "Object " + type.ToString() + " '" + objName + "' has no identifiers");
                return(false);
            }

            return(true);
        }
Example #10
0
 public static string GetSimpleFullName(DbObject node)
 {
     return(node.Identifiers.Select(s => s.Name).DefaultIfEmpty().Aggregate((aggr, item) => aggr + "." + item));
 }
Example #11
0
 public bool HaveSameName(DbObject node)
 {
     return(mName.Equals(node.Identifiers.Last().Name, StringComparison.CurrentCultureIgnoreCase));
 }
Example #12
0
 public DbObjectNode(string name, ObjectType objType, DbObject node)
 {
     identifier  = name;
     objectType  = objType;
     grammarNode = node;
 }