private static void Resend(ResendFromDeadLetterQueue cmd, QueueClient dlqClient, QueueClient qClient)
        {
            var brokeredMessages = dlqClient.ReceiveBatch(cmd.BatchSize);

            Parallel.ForEach(brokeredMessages, qClient.Send);
            Console.Write(".");
        }
        public int Handle(ResendFromDeadLetterQueue cmd)
        {
            var dlqClient = this.messagingFactory.CreateQueueClient(
                QueueClient.FormatDeadLetterPath(cmd.Name),
                ReceiveMode.ReceiveAndDelete);
            var qClient = this.messagingFactory.CreateQueueClient(cmd.Name);

            if (cmd.All)
            {
                QueueDescription queueDescription = null;
                do
                {
                    Resend(cmd, dlqClient, qClient);
                    queueDescription = this.namespaceManager.GetQueue(cmd.Name);
                }while (queueDescription.MessageCountDetails.DeadLetterMessageCount > 0);
            }
            else
            {
                Resend(cmd, dlqClient, qClient);
            }

            Console.WriteLine("Finished resending to queue");

            return(0);
        }