Esempio n. 1
0
        public void ConnectDatabase(Database.Information databaseConfiguration)
        {
            submittedDatabaseConfiguration = databaseConfiguration.Duplicate();

            Server.Information serverInfo = communicator.ServerInformation;
            if (serverInfo.DatabaseInformation.Status == Database.Status.ConfigurationOnProgress) return;

            Database.Information previousDatabaseInformation = serverInfo.DatabaseInformation.Duplicate();
            serverInfo.DatabaseInformation.Status = Database.Status.ConfigurationOnProgress;

            IEnumerable<KeyValuePair<string, ICommunicatorCallback>> callBackList = communicator.ClientList.Where(itm => itm.Key != communicator.CurrentSessionID);

            foreach (KeyValuePair<string, ICommunicatorCallback> callback in callBackList)
            {
                connectionDatabaseCallbackWorkerList.Add(new BackgroundWorker());
                BackgroundWorker bWorker = connectionDatabaseCallbackWorkerList[connectionDatabaseCallbackWorkerList.Count - 1];

                bWorker.DoWork += connectionDatabaseCallbackWorker_DoWork;
                bWorker.RunWorkerCompleted += connectionDatabaseCallbackWorker_RunWorkerCompleted;

                List<object> arguments = new List<object>();
                arguments.Add(callback);
                arguments.Add(previousDatabaseInformation);
                bWorker.RunWorkerAsync(arguments);
            }

            configureDatabaseConnectionWorker = new BackgroundWorker();

            configureDatabaseConnectionWorker.DoWork += configureDatabaseConnectionWorker_DoWork;
            configureDatabaseConnectionWorker.RunWorkerCompleted += configureDatabaseConnectionWorker_RunWorkerCompleted;
            configureDatabaseConnectionWorker.RunWorkerAsync();
        }
Esempio n. 2
0
        public Status Validate(ref Information databaseInformation)
        {
            if (!resourceBuilder.IsFileAvailable)
            {
                databaseInformation.Status = Status.RequiresConfiguration;
                return databaseInformation.Status;
            }

            return databaseInformation.Status;
        }
Esempio n. 3
0
        private ConfigurationSteps CheckDatabase(Information databaseInformation)
        {
            ConfigurationSteps result = ConfigurationSteps.CheckingDatabase;

            using (SqlConnection connection = new SqlConnection(masterConnectionString))
            {
                connection.Open();
                using (SqlCommand command = new SqlCommand(string.Format("SELECT COUNT(name) AS databaseCount FROM sysdatabases WHERE name = '{0}'", databaseInformation.DatabaseName), connection))
                {
                    SqlDataReader reader = command.ExecuteReader(System.Data.CommandBehavior.SingleRow);

                    result = ((int)(reader.Read() ? reader.GetInt32(0) : -1)) > 0 ? ConfigurationSteps.DatabaseAvailable : ConfigurationSteps.DatabaseNotAvailable;
                }
                connection.Close();
            }

            return result;
        }
Esempio n. 4
0
        public Information Duplicate()
        {
            Information result = new Information()
            {
                databaseAuthentication = databaseAuthentication,
                databaseName = databaseName,
                password = password,
                serverAddress = serverAddress,
                serverConnectionConfiguration = serverConnectionConfiguration,
                serverInstanceName = serverInstanceName,
                sqlServerOption = sqlServerOption,
                status = status,
                userName = userName
            };

            return result;
        }