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); }
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); } } }
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"); }
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); }
void FixIdentifier(DbObject node, ObjectType type, Identifier identifier) { FixIdentifiers(node, type, new List <Identifier> { identifier }); }
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))); } } }
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); } } }
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); }
public static string GetSimpleFullName(DbObject node) { return(node.Identifiers.Select(s => s.Name).DefaultIfEmpty().Aggregate((aggr, item) => aggr + "." + item)); }
public bool HaveSameName(DbObject node) { return(mName.Equals(node.Identifiers.Last().Name, StringComparison.CurrentCultureIgnoreCase)); }
public DbObjectNode(string name, ObjectType objType, DbObject node) { identifier = name; objectType = objType; grammarNode = node; }