Alphashack.Graphdat.Agent.SqlTrace.SqlTraceManager.Worker C# (CSharp) Method

Worker() private method

private Worker ( ) : void
return void
        private void Worker()
        {
            try
            {
                var databases = GetDatabases();
                if (databases.Count > 0)
                {
                    ReportDatabases(databases);

                    int timeToWait;
                    do
                    {
                        var processingStart = Stopwatch.StartNew();

                        foreach (var database in databases)
                        {
                            var db = database.Value;

                            var databaseLines = new StringBuilder();
                            foreach (var catalog in db.Catalogs)
                            {
                                databaseLines.AppendLine(
                                    string.Format(databaseLines.Length == 0 ? DatabaseFirstLine : DatabaseLine, catalog));
                            }
                            var script = string.Format(InstanceScript, _workDirectory, databaseLines);

                            var conn = new SqlConnection(db.InstanceConnectionString);
                            var server = new Server(new ServerConnection(conn));
                            var result = server.ConnectionContext.ExecuteNonQuery(script);
                        }

                        // calculate time to wait
                        var elapsed = (int) processingStart.ElapsedMilliseconds;
                        timeToWait = Properties.Settings.Default.SqlTraceManagerWorkerLoopSleep - elapsed;
                        if (timeToWait < 0) timeToWait = 0;
                    } while (!_termHandle.WaitOne(timeToWait));
                }
                else
                {
                    Exit(string.Format("SqlTraceManager worker exiting, no databases to monitor."));
                }
            }
            catch (Exception ex)
            {
                Exit(string.Format("SqlTraceManager worker exiting because of exception. {0}", ex));
            }
        }