Esempio n. 1
0
        public bool AllChunksStarted(int buildingId)
        {
            using (var connection = SqlConnectionHelper.OpenMssqlConnection(_connectionString))
                using (var transaction = connection.BeginTransaction())
                {
                    var query =
                        $"SELECT TOP 1 Id FROM Chunk WHERE BuildingId = {buildingId} AND Started is null";
                    using (var cmd = new SqlCommand(query, connection, transaction)
                    {
                        CommandTimeout = 0
                    })
                    {
                        using (var reader = cmd.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                return(false);
                            }
                        }
                    }
                }

            return(true);
        }
Esempio n. 2
0
        public void PopulateMetadata()
        {
            var query = "INSERT INTO {sc}.METADATA " +
                        "(METADATA_CONCEPT_ID  " +
                        ", [NAME] " +
                        ", VALUE_AS_STRING " +
                        ", VALUE_AS_CONCEPT_ID " +
                        ", METADATA_DATE " +
                        ", METADATA_DATETIME) " +
                        "SELECT 0 " +
                        ", [NAME] " +
                        ", count(*) as cnt " +
                        ", 0 " +
                        ", getdate() " +
                        ", CONVERT(varchar, getdate(), 8) " +
                        "FROM ( SELECT DISTINCT PERSON_ID, NAME FROM {sc}.METADATA_TMP) as a GROUP BY [NAME]";

            query = query.Replace("{sc}", _schemaName);

            var odbcConnection = new OdbcConnectionStringBuilder(_connectionString);
            var sqlConnection  = new SqlConnectionStringBuilder
            {
                ["Data Source"]     = odbcConnection["server"],
                ["Initial Catalog"] = odbcConnection["database"],
                ["User Id"]         = odbcConnection["uid"],
                ["Password"]        = odbcConnection["pwd"]
            };

            using (var connection = SqlConnectionHelper.OpenMssqlConnection(sqlConnection.ConnectionString))
            {
                using (var command = new SqlCommand(query, connection))
                {
                    command.ExecuteNonQuery();
                }
            }
        }
Esempio n. 3
0
        public BuilderState GetState(int builderId)
        {
            const string query = "SELECT StateId FROM [Builder] WHERE Id = {0}";

            using (var connection = SqlConnectionHelper.OpenMssqlConnection(_connectionString))
            {
                using (var cmd = new SqlCommand(string.Format(query, builderId), connection))
                {
                    using (var reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var stateId = reader.GetInt("StateId");
                            if (stateId != null)
                            {
                                return((BuilderState)stateId.Value);
                            }
                        }

                        return(BuilderState.Unknown);
                    }
                }
            }
        }
Esempio n. 4
0
        public void UpdateSettings(int builderId, string machineName, int buildingId, string folder, int maxDegreeOfParallelism, string version)
        {
            const string query = "UPDATE [dbo].[Builder] " +
                                 "SET [Folder] = @folder " +
                                 ",[MaxDegreeOfParallelism] = @maxDegreeOfParallelism " +
                                 ",[BuildingId] = @buildingId " +
                                 ",[Version] = @version " +
                                 "WHERE [Id] = @builderId";

            using (var connection = SqlConnectionHelper.OpenMssqlConnection(_connectionString))
            {
                using (var cmd = new SqlCommand(query, connection))
                {
                    cmd.Parameters.Add("@builderId", SqlDbType.Int);
                    cmd.Parameters["@builderId"].Value = builderId;

                    cmd.Parameters.Add("@dsn", SqlDbType.VarChar);
                    cmd.Parameters["@dsn"].Value = machineName;

                    cmd.Parameters.Add("@folder", SqlDbType.VarChar);
                    cmd.Parameters["@folder"].Value = folder;

                    cmd.Parameters.Add("@maxDegreeOfParallelism", SqlDbType.VarChar);
                    cmd.Parameters["@maxDegreeOfParallelism"].Value = maxDegreeOfParallelism;

                    cmd.Parameters.Add("@buildingId", SqlDbType.Int);
                    cmd.Parameters["@buildingId"].Value = buildingId;

                    cmd.Parameters.Add("@version", SqlDbType.VarChar);
                    cmd.Parameters["@version"].Value = version;

                    cmd.CommandTimeout = 30000;
                    cmd.ExecuteScalar();
                }
            }
        }
Esempio n. 5
0
        public override ISaver Create(string connectionString, CdmVersions cdmVersion, string sourceSchema, string destinationSchema)
        {
            CdmVersion        = cdmVersion;
            SourceSchema      = sourceSchema;
            DestinationSchema = destinationSchema;

            var odbcConnection = new OdbcConnectionStringBuilder(connectionString);
            var sqlConnection  = new SqlConnectionStringBuilder
            {
                ["Data Source"]     = odbcConnection["server"],
                ["Initial Catalog"] = odbcConnection["database"],
                ["User Id"]         = odbcConnection["uid"],
                ["Password"]        = odbcConnection["pwd"]
            };

            _connection  = SqlConnectionHelper.OpenMssqlConnection(sqlConnection.ConnectionString);
            _transaction = _connection.BeginTransaction();
            _bulkCopy    = new SqlBulkCopy(_connection, SqlBulkCopyOptions.TableLock, _transaction)
            {
                BulkCopyTimeout = 600
            };

            return(this);
        }
Esempio n. 6
0
        public IEnumerable <IDataReader> GetList()
        {
            const string query = "SELECT [BuildingId] " +
                                 ",[SourceConnectionString] " +
                                 ",[DestinationConnectionString] " +
                                 ",[Vendor] " +
                                 ",[BatchSize] " +
                                 "FROM [dbo].[BuildingSettings] ORDER BY BuildingId DESC";

            using (var connection = SqlConnectionHelper.OpenMssqlConnection(_connectionString))
            {
                using (var cmd = new SqlCommand(query, connection))
                {
                    cmd.CommandTimeout = 30000;
                    using (var reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            yield return(reader);;
                        }
                    }
                }
            }
        }