static void RetryMessage(string connectionString, string queueName, MessageToRetry messageToRetry)
 {
     string sql = string.Format(
         @"INSERT INTO [{0}] (
                 [Id], 
                 [Recoverable], 
                 [Headers], 
                 [Body])
             VALUES (
                 @Id, 
                 @Recoverable, 
                 @Headers, 
                 @Body)", queueName);
     using (SqlConnection connection = new SqlConnection(connectionString))
     {
         connection.Open();
         using (SqlCommand command = new SqlCommand(sql, connection))
         {
             SqlParameterCollection parameters = command.Parameters;
             command.CommandType = CommandType.Text;
             parameters.Add("Id", SqlDbType.UniqueIdentifier).Value = messageToRetry.Id;
             parameters.Add("Headers", SqlDbType.VarChar).Value = messageToRetry.Headers;
             parameters.Add("Body", SqlDbType.VarBinary).Value = messageToRetry.Body;
             parameters.Add("Recoverable", SqlDbType.Bit).Value = true;
             command.ExecuteNonQuery();
         }
     }
 }
    static async Task RetryMessage(string connectionString, string queueName, MessageToRetry messageToRetry)
    {
        var sql = $@"INSERT INTO [{queueName}] (
                    [Id],
                    [Recoverable],
                    [Headers],
                    [Body])
                VALUES (
                    @Id,
                    @Recoverable,
                    @Headers,
                    @Body)";

        using (var connection = new SqlConnection(connectionString))
        {
            await connection.OpenAsync()
            .ConfigureAwait(false);

            using (var command = new SqlCommand(sql, connection))
            {
                var parameters = command.Parameters;
                command.CommandType = CommandType.Text;
                parameters.Add("Id", SqlDbType.UniqueIdentifier).Value = messageToRetry.Id;
                parameters.Add("Headers", SqlDbType.VarChar).Value     = messageToRetry.Headers;
                parameters.Add("Body", SqlDbType.VarBinary).Value      = messageToRetry.Body;
                parameters.Add("Recoverable", SqlDbType.Bit).Value     = true;
                await command.ExecuteNonQueryAsync()
                .ConfigureAwait(false);
            }
        }
    }
        static void RetryMessage(string connectionString, string queueName, MessageToRetry messageToRetry)
        {
            string sql = string.Format(
                @"INSERT INTO [{0}] (
                        [Id], 
                        [Recoverable], 
                        [Headers], 
                        [Body])
                    VALUES (
                        @Id, 
                        @Recoverable, 
                        @Headers, 
                        @Body)", queueName);

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                using (SqlCommand command = new SqlCommand(sql, connection))
                {
                    SqlParameterCollection parameters = command.Parameters;
                    command.CommandType = CommandType.Text;
                    parameters.Add("Id", SqlDbType.UniqueIdentifier).Value = messageToRetry.Id;
                    parameters.Add("Headers", SqlDbType.VarChar).Value     = messageToRetry.Headers;
                    parameters.Add("Body", SqlDbType.VarBinary).Value      = messageToRetry.Body;
                    parameters.Add("Recoverable", SqlDbType.Bit).Value     = true;
                    command.ExecuteNonQuery();
                }
            }
        }
Esempio n. 4
0
        static void RetryMessage(string connectionString, string queueName, MessageToRetry messageToRetry)
        {
            var sql = $@"
                insert into [{queueName}] (
                    Id,
                    Recoverable,
                    Headers,
                    Body)
                values (
                    @Id,
                    @Recoverable,
                    @Headers,
                    @Body)";

            using (var connection = new SqlConnection(connectionString))
            {
                connection.Open();
                using (var command = new SqlCommand(sql, connection))
                {
                    var parameters = command.Parameters;
                    parameters.Add("Id", SqlDbType.UniqueIdentifier).Value = messageToRetry.Id;
                    parameters.Add("Headers", SqlDbType.NVarChar).Value    = messageToRetry.Headers;
                    parameters.Add("Body", SqlDbType.VarBinary).Value      = messageToRetry.Body;
                    parameters.Add("Recoverable", SqlDbType.Bit).Value     = true;
                    command.ExecuteNonQuery();
                }
            }
        }
 public static void ReturnMessageToSourceQueue(
     string errorQueueConnectionString,
     string errorQueueName,
     string retryConnectionString,
     string retryQueueName,
     Guid messageId)
 {
     using (var scope = new TransactionScope())
     {
         MessageToRetry messageToRetry = ReadAndDelete(errorQueueConnectionString, errorQueueName, messageId);
         RetryMessage(retryConnectionString, retryQueueName, messageToRetry);
         scope.Complete();
     }
 }