public void ExecuteQueries(
IList<string> servers,
string username,
string password,
string scriptLocation,
string outputFolder,
IList<string> databases,
bool useTrusted,
bool autoFitColumns,
int queryTimeoutSeconds
)
{
var parser = new QueryFileParser(scriptLocation);
var queries = parser.Load();
var serverQueries = queries.Where(q => q.ServerScope).ToList();
var dbQueries = queries.Where(q => !q.ServerScope).ToList();
foreach (var servername in servers)
{
var dateString = DateTime.Now.ToString("yyyyMMdd_hhmmss_");
_dictWorksheet.Clear();
var outputFilepath = GetOutputFilepath(outputFolder, servername, dateString);
using (var fs = new FileStream(outputFilepath, FileMode.Create))
{
using (var pck = new ExcelPackage(fs))
{
var connectionString = GetConnectionStringTemplate(servername, "master", username, password, useTrusted);
ExecuteQueriesAndSaveToExcel(pck, connectionString, serverQueries, "", "", autoFitColumns, queryTimeoutSeconds);
int databaseNo = 1;
foreach (var db in databases)
{
connectionString = GetConnectionStringTemplate(servername, db, username, password, useTrusted);
ExecuteQueriesAndSaveToExcel(pck, connectionString, dbQueries, db.Trim(),
databaseNo.ToString(CultureInfo.InvariantCulture),
autoFitColumns, queryTimeoutSeconds);
databaseNo++;
}
pck.Save();
}
}
}
}