示例#1
0
        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);
        }
示例#2
0
 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();
         }
     }
 }