private List <string> getDatabaseDetails() { List <string> dbProperties = new List <string>(); //logger = LogManager.GetLogger("Autosys_JobDependency_Crawler.getDatabaseDetails()"); DependencyCrawler dc = new DependencyCrawler(); logger.Info("Reading database.properties for AutoSys database information"); StreamReader dbfileReader = new StreamReader("../../resources/database.properties"); string currentDBLine = null; if (File.Exists("../../resources/database.properties")) { logger.Info("database.properties file found. Proceeding to gather info..."); while ((currentDBLine = dbfileReader.ReadLine()) != null) { logger.Debug(currentDBLine); if (currentDBLine.Contains("DB_HOST_NAME=")) { string dbHostName = currentDBLine.Split('=')[1].Trim(); dbProperties.Add(dbHostName); continue; } if (currentDBLine.Contains("DB_PORT_NUMBER=")) { string dbPort = currentDBLine.Split('=')[1].Trim(); dbProperties.Add(dbPort); continue; } if (currentDBLine.Contains("DB_READ_USER="******"DB_READ_PASS="******"DB_NAME=")) { string dbName = currentDBLine.Split('=')[1].Trim(); dbProperties.Add(dbName); continue; } } } return(dbProperties); }
static void Main(string[] args) { DependencyCrawler dc = new DependencyCrawler(); logger.Info("Application Logging initialized..."); List <string> dbProperties = dc.getDatabaseDetails(); dc.databaseHostName = dbProperties[0]; dc.databasePort = dbProperties[1]; dc.databaseUser = dbProperties[2]; dc.databasePass = dbProperties[3]; dc.databaseName = dbProperties[4]; string sqlConnectionString = "Data Source=" + dc.databaseHostName + "," + dc.databasePort + ";Initial Catalog=" + dc.databaseName + ";User ID=" + dc.databaseUser + ";Password="******";MultipleActiveResultSets=true"; logger.Debug(sqlConnectionString); dc.sqlConnection = new SqlConnection(sqlConnectionString); dc.sqlConnection.Open(); logger.Info("Connected to SQL Server on :" + dc.databaseHostName + " \t SQL Server Version: " + dc.sqlConnection.ServerVersion); dc.getDependentJobList(dc.sqlConnection, "job11"); int i = 0; //for (int i = 0; i <= jobDependencyList.Count-1; i++) while (jobDependencyList.Count != 0) { //string condJob = masterDependencyList[i].Split(',')[1].Trim(); string condJob = jobDependencyList[i].Trim(); if (!processedJobList.Contains(condJob)) { dc.getDependentJobList(dc.sqlConnection, condJob); processedJobList.Add(condJob); jobDependencyList.Remove(condJob); } else { logger.Debug("Job " + condJob + " already processed for dependencies. Skipping"); jobDependencyList.Remove(condJob); continue; } } foreach (string v in masterDependencyList) { logger.Info("Master Dependency List: " + v); } dc.closeDBConnections(dc.sqlConnection); }
private void getDependentJobList(SqlConnection sql, string jobName) { //int levelCounter = 0; DependencyCrawler dc1 = new DependencyCrawler(); int myJobId = dc1.getJobID(sql, jobName); string getDependentJobsSQL = "select cond.cond_job_name from ujo_job_cond cond,ujo_job job where cond.joid=job.joid and job.joid=@jobid and (type='s' or type='S' or type='f' or type='F' or type='t' or type='T' or type='n' or type='N' or type='d' or type='D' or type='e' or type='E') and (job.is_active='1' and job.is_currver='1')"; SqlCommand sqlCmd = new SqlCommand(getDependentJobsSQL, sql); sqlCmd.Parameters.AddWithValue("jobid", myJobId); string depJobName = null; //List<string> dependentJobList = new List<string>(); logger.Info("SQL Server connection state: " + sql.State); logger.Debug("Getting dependent jobs for : " + jobName); SqlDataReader sqlReader = sqlCmd.ExecuteReader(); if (sqlReader.HasRows) { while (sqlReader.Read()) { depJobName = sqlReader.GetString(sqlReader.GetOrdinal("cond_job_name")); logger.Debug("Dep Job found: " + depJobName + " for job: " + jobName); masterDependencyList.Add(jobName + "," + depJobName + ",Level" + levelCounter); jobDependencyList.Add(depJobName); } } else { depJobName = "NO_FURTHER_DEPENDENCY"; logger.Debug("Dep Job found: " + depJobName + " for job: " + jobName); masterDependencyList.Add(jobName + "," + depJobName + ",Level" + levelCounter); } levelCounter++; /*foreach(string condJobString in masterDependencyList) * { * string condJob = condJobString.Split(',')[1].Trim(); * logger.Debug("Getting Dependent job for : " + condJob); * getDependentJobList(sql, condJob); * }*/ sqlReader.Close(); }