public MetaSprocSqlDependency GetMetaSprocSqlDependencyForOneSproc(List <MetaSqlDependency> dependenciesForSproc, string sprocName) { PredicateFunctions predicateFunctions = new PredicateFunctions(); string sprocTypeString = Constants.MetaSqlOrSprocDependencyConstants.STORED_PROCEDURE_TYPE; string userTableTypeString = Constants.MetaSqlOrSprocDependencyConstants.USER_TABLE_TYPE; List.MetaSqlDependency sprocTypeDependencies = new List.MetaSqlDependency(); List.MetaSqlDependency userTableTypeDependencies = new List.MetaSqlDependency(); Dictionary <string, List <MetaSqlDependency> > listOfUserTableToColumnsReferenced = new Dictionary <string, List <MetaSqlDependency> >(); List <string> distinctUserTablesList = new List <string>(); predicateFunctions.ReferencedTypeHolder = sprocTypeString; sprocTypeDependencies.AddRange(dependenciesForSproc.FindAll(predicateFunctions.FindMetaSqlDependenciesByReferencedType)); predicateFunctions.ReferencedTypeHolder = userTableTypeString; userTableTypeDependencies.AddRange(dependenciesForSproc.FindAll(predicateFunctions.FindMetaSqlDependenciesByReferencedType)); if (userTableTypeDependencies.Count > 0) { distinctUserTablesList = GetDistinctUserTableList(userTableTypeDependencies); foreach (string distinctUserTableName in distinctUserTablesList) { List <MetaSqlDependency> columnsReferenced = new List <MetaSqlDependency>(); predicateFunctions.ReferencedObjectHolder = distinctUserTableName; columnsReferenced.AddRange(userTableTypeDependencies.FindAll(predicateFunctions.FindMetaSqlDependenciesByReferencedObject)); if (columnsReferenced.Count > 0) { listOfUserTableToColumnsReferenced.Add(distinctUserTableName, columnsReferenced); } } } MetaSprocSqlDependency metaSprocSqlDependency = new MetaSprocSqlDependency(sprocName, sprocTypeDependencies, userTableTypeDependencies, listOfUserTableToColumnsReferenced, distinctUserTablesList); return(metaSprocSqlDependency); }
public void SetRecursiveSprocDependencyDictionary() { PredicateFunctions predicateFunctions = new PredicateFunctions(); foreach (MetaSprocSqlDependency metaSprocSqlDependency in _metaSprocSqlDependencyList) { List <string> distinctSprocDependencyNames = GetDistinctSprocDependecyList(metaSprocSqlDependency.SprocDependencies); foreach (string sprocDependencyName in distinctSprocDependencyNames) { predicateFunctions.SprocNameHolder = sprocDependencyName; MetaSprocSqlDependency sprocRecursiveDependency = _metaSprocSqlDependencyList.Find(predicateFunctions.FindMetaSqlSprocBySprocName); sprocRecursiveDependency.RecursiveSprocNameToMetaSprocSqlDependency.Add(sprocDependencyName, sprocRecursiveDependency); } } }
public void SetMetaDataList(string sprocName) { SprocDataLayerGeneratorDataAccess dataAccess = new SprocDataLayerGeneratorDataAccess(); List <MetaSqlDependency> allDependenciesForSproc = dataAccess.GetMetaSqlDependency(_smoObjectsAndSettings.ConnectionString, sprocName); //returns all dependencies for one sproc MetaSprocSqlDependency oneMetaSprocSqlDependency = this.GetMetaSprocSqlDependencyForOneSproc(allDependenciesForSproc, sprocName); if (oneMetaSprocSqlDependency != null) { _metaSprocSqlDependencyList.Add(oneMetaSprocSqlDependency); if (oneMetaSprocSqlDependency.SprocDependencies.Count > 0) { foreach (MetaSqlDependency sprocDependency in oneMetaSprocSqlDependency.SprocDependencies) { SetMetaDataList(sprocDependency.ReferencedObject); } } } }