Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
        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);
                    }
                }
            }
        }