public async Task <QueueDefinition> CreateQueue(IWorkContext context, QueueDefinition queueDefinition)
        {
            context.Verify(nameof(context)).IsNotNull();
            queueDefinition.Verify(nameof(queueDefinition)).IsNotNull();

            QueueDescription createdDescription = await _managementClient.CreateQueueAsync(queueDefinition.ConvertTo(), context.CancellationToken);

            return(createdDescription.ConvertTo());
        }
Example #2
0
        public CreateQueueState(IQueueManagement queueManagement, QueueDefinition queueDefinition)
        {
            queueManagement.Verify(nameof(queueManagement)).IsNotNull();
            queueDefinition.Verify(nameof(queueDefinition)).IsNotNull();
            queueDefinition.QueueName.Verify(nameof(queueDefinition.QueueName)).IsNotNull();

            _queueDefinition  = queueDefinition;
            _managementClient = queueManagement;
        }
Example #3
0
        public QueueRegistration(string serviceHubNamespace, string nodeId, QueueDefinition queueDefinition)
        {
            serviceHubNamespace.Verify(nameof(serviceHubNamespace)).IsNotEmpty();
            nodeId.Verify(nameof(nodeId)).IsNotEmpty();
            queueDefinition.Verify(nameof(queueDefinition)).IsNotNull();

            ServiceHubNamespace = serviceHubNamespace;
            NodeId          = nodeId;
            QueueDefinition = queueDefinition;
        }
Example #4
0
        public static QueueDescription ConvertTo(this QueueDefinition subject)
        {
            subject.Verify(nameof(subject)).IsNotNull();
            subject.QueueName !.Verify(nameof(subject.QueueName)).IsNotEmpty();

            return(new QueueDescription(subject.QueueName)
            {
                LockDuration = subject.LockDuration,
                RequiresDuplicateDetection = subject.RequiresDuplicateDetection,
                DuplicateDetectionHistoryTimeWindow = subject.DuplicateDetectionHistoryTimeWindow,
                RequiresSession = subject.RequiresSession,
                DefaultMessageTimeToLive = subject.DefaultMessageTimeToLive,
                AutoDeleteOnIdle = subject.AutoDeleteOnIdle,
                EnableDeadLetteringOnMessageExpiration = subject.EnableDeadLetteringOnMessageExpiration,
                MaxDeliveryCount = subject.MaxDeliveryCount,
                EnablePartitioning = subject.EnablePartitioning,
            });
        }