private static void ConnectToInstance(InstanceInfo instanceInfo) { SqlConnection instanceConnection; //Trying to open connection. If successful, collecting data from instance try { instanceConnection = manager.GetOpenedInstanceConnection(instanceInfo); } catch (SqlException ex) { repositoryAccess.UpdateInstance(instanceInfo); Notify(instanceInfo, ex); return; } AllQueriesExecutor queriesExecutor = new AllQueriesExecutor(instanceConnection); queriesExecutor.ExecuteAllQueries(instanceInfo.Id, instanceInfo.UserId); }
public void ExecuteAllQueries(int instanceId, int?userId) { using (_sqlConnection) { List <Task> tasks = new List <Task>() { //Task for collecting basic information about instance Task.Factory.StartNew(() => { getBaseInstanceInfo.Run(); Instance instance = getBaseInstanceInfo.Instance; instance.Id = instanceId; instance.UserId = userId; repositoryAccess.UpdateInstance(instance); }), //Getting list of databases from instance Task.Factory.StartNew(() => { getListofDatabases.Run(); List <BriefDatabase> dbList = getListofDatabases.DbList; DatabaseQueriesExecutor dbExecutor = new DatabaseQueriesExecutor(_sqlConnection, dbList, instanceId); dbExecutor.ExecuteDatabaseQueries(); }) }; try { Task.WaitAll(tasks.ToArray()); string msg = string.Format("Have been successfully updated information on {0}", _sqlConnection.DataSource); Logger.WriteLog(LogLevel.Info, msg); } catch (AggregateException ex) { throw ex.Flatten(); } } }