public static void EnqueueJobId(string queue, string jobId)
 {
     using (var messageQueue = CleanMsmqQueueAttribute.GetMessageQueue(queue))
         using (var message = new Message {
             Body = jobId, Label = jobId, Formatter = new BinaryMessageFormatter()
         })
             using (var transaction = new MessageQueueTransaction())
             {
                 transaction.Begin();
                 messageQueue.Send(message, transaction);
                 transaction.Commit();
             }
 }
        public static string DequeueJobId(string queue, TimeSpan timeout)
        {
            using (var messageQueue = CleanMsmqQueueAttribute.GetMessageQueue(queue))
                using (var transaction = new MessageQueueTransaction())
                {
                    transaction.Begin();

                    using (var message = messageQueue.Receive(timeout, transaction))
                    {
                        message.Formatter = new BinaryMessageFormatter();
                        transaction.Commit();

                        return((string)message.Body);
                    }
                }
        }
        public void Enqueue_SendsTheJobId()
        {
            // Arrange
            var queue = CreateQueue(MsmqTransactionType.Internal);

            // Act
            queue.Enqueue(_connection.Object, "my-queue", "job-id");

            // Assert
            using (var messageQueue = CleanMsmqQueueAttribute.GetMessageQueue("my-queue"))
                using (var transaction = new MessageQueueTransaction())
                {
                    transaction.Begin();

                    var message = messageQueue.Receive(TimeSpan.FromSeconds(5), transaction);

                    Assert.Equal("job-id", message.Label);

                    transaction.Commit();
                }
        }
        public void Enqueue_AddsAJob_WhenIdIsLongValue()
        {
            // Arrange
            var queue = CreateQueue(MsmqTransactionType.Internal);

            // Act
            queue.Enqueue(_connection.Object, "my-queue", (int.MaxValue + 1L).ToString());

            // Assert
            using (var messageQueue = CleanMsmqQueueAttribute.GetMessageQueue("my-queue"))
                using (var transaction = new MessageQueueTransaction())
                {
                    transaction.Begin();

                    var message = messageQueue.Receive(TimeSpan.FromSeconds(5), transaction);

                    Assert.Equal((int.MaxValue + 1L).ToString(), message.Label);

                    transaction.Commit();
                }
        }