예제 #1
0
        public static void CreateMessageType(this SqlTransaction tran, SqlSchemalessObjectName messageTypeName)
        {
            var script = LoadScript("CreateMessageType");

            script = script.Replace("{messageTypeName.Name}", messageTypeName.Name);
            script = script.Replace("{messageTypeName}", messageTypeName);
            tran.ExecuteNonQuery(script);
        }
예제 #2
0
        public static void CreateService(this SqlTransaction tran, SqlSchemalessObjectName serviceName, SqlObjectName queueName, SqlSchemalessObjectName contractName)
        {
            var script = LoadScript("CreateService");

            script = script.Replace("{serviceName.Name}", serviceName.Name);
            script = script.Replace("{serviceName}", serviceName);
            script = script.Replace("{queueName}", queueName);
            script = script.Replace("{contractName}", contractName);
            tran.ExecuteNonQuery(script);
        }
예제 #3
0
        public static Guid GetConversation(this SqlTransaction tran, SqlSchemalessObjectName senderServiceName, SqlSchemalessObjectName recieverServiceName, SqlSchemalessObjectName contractName)
        {
            var script = LoadScript("GetConversation");

            script = script.Replace("{recieverServiceName.Name}", recieverServiceName.Name);
            script = script.Replace("{recieverServiceName}", recieverServiceName);
            script = script.Replace("{senderServiceName.Name}", senderServiceName.Name);
            script = script.Replace("{senderServiceName}", senderServiceName);
            script = script.Replace("{contractName}", contractName);
            using (var command = tran.Connection.CreateCommand())
            {
                command.CommandText = script;
                command.Transaction = tran;
                return((Guid)command.ExecuteScalar());
            }
        }
예제 #4
0
 public static void DropService(this SqlTransaction tran, SqlSchemalessObjectName serviceName)
 {
     tran.ExecuteNonQuery($"DROP SERVICE {serviceName}");
 }
예제 #5
0
 public static void DropContract(this SqlTransaction tran, SqlSchemalessObjectName contract)
 {
     tran.ExecuteNonQuery($"DROP CONTRACT {contract}");
 }
예제 #6
0
 public static void DropMessageType(this SqlTransaction tran, SqlSchemalessObjectName messageTypeName)
 {
     tran.ExecuteNonQuery($"DROP MESSAGE TYPE {messageTypeName}");
 }
예제 #7
0
        private static void CreateTrigger(this SqlTransaction tran, string triggerResource, SqlObjectName triggerName, SqlObjectName tableName, string dialogHandle, SqlSchemalessObjectName messageType, bool withNative)
        {
            var script = LoadScript(triggerResource);

            script = script.Replace("{triggerName}", triggerName);
            script = script.Replace("{tableName.Schema}", tableName.Schema);
            script = script.Replace("{tableName.Name}", tableName.Name);
            script = script.Replace("{tableName}", tableName);
            script = script.Replace("{dialogHandle}", dialogHandle);
            script = script.Replace("{messageType}", messageType);
            if (withNative)
            {
                script = script.Replace("{with}", "WITH NATIVE_COMPILATION, SCHEMABINDING");
                script = script.Replace("{as}", "BEGIN ATOMIC WITH ( TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english' )");
            }
            else
            {
                script = script.Replace("{with}", String.Empty);
                script = script.Replace("{as}", String.Empty);
            }
            tran.ExecuteNonQuery(script);
        }
예제 #8
0
 public static void CreateTriggerUpdate(this SqlTransaction tran, SqlObjectName triggerName, SqlObjectName tableName, string dialogHandle, SqlSchemalessObjectName messageType, bool withNative)
 {
     tran.CreateTrigger("CreateUpdateTrigger", triggerName, tableName, dialogHandle, messageType, withNative);
 }