Exemplo n.º 1
0
        public async Task <ISendTransport> GetSendTransport(Uri address)
        {
            var queueOrTopicName = address.AbsolutePath.Trim('/');

            var serviceBusQueue = new ServiceBusAttribute(queueOrTopicName, EntityType.Queue);

            IAsyncCollector <Message> collector = await _binder.BindAsync <IAsyncCollector <Message> >(serviceBusQueue, _cancellationToken).ConfigureAwait(false);

            if (_log.IsDebugEnabled)
            {
                _log.DebugFormat("Creating Send Transport: {0}", queueOrTopicName);
            }

            var sendEndpointContext = new CollectorMessageSendEndpointContext(queueOrTopicName, _log, collector, _cancellationToken);

            var source = new CollectorSendEndpointContextSource(sendEndpointContext);

            return(new ServiceBusSendTransport(source, address));
        }
        async Task <ISendTransport> GetSendTransport(Uri address)
        {
            var queueOrTopicName = address.AbsolutePath.Trim('/');

            var serviceBusTopic = new ServiceBusAttribute(queueOrTopicName, AccessRights.Manage);

            serviceBusTopic.EntityType = EntityType.Topic;

            IAsyncCollector <BrokeredMessage> collector = await _binder.BindAsync <IAsyncCollector <BrokeredMessage> >(serviceBusTopic, _cancellationToken).ConfigureAwait(false);

            if (_log.IsDebugEnabled)
            {
                _log.DebugFormat("Creating Publish Transport: {0}", queueOrTopicName);
            }

            var client = new CollectorSendEndpointContext(queueOrTopicName, _log, collector, _cancellationToken);

            var source = new CollectorSendEndpointContextSource(client);

            var transport = new ServiceBusSendTransport(source, address);

            return(transport);
        }