Пример #1
0
        public async Task <OperateResult> SendAsync(TransportMessage transportMessage)
        {
            try
            {
                Connect();

                var message = new Microsoft.Azure.ServiceBus.Message
                {
                    MessageId     = transportMessage.GetId(),
                    Body          = transportMessage.Body,
                    Label         = transportMessage.GetName(),
                    CorrelationId = transportMessage.GetCorrelationId()
                };

                foreach (var header in transportMessage.Headers)
                {
                    message.UserProperties.Add(header.Key, header.Value);
                }

                await _topicClient.SendAsync(message);

                _logger.LogDebug($"Azure Service Bus message [{transportMessage.GetName()}] has been published.");

                return(OperateResult.Success);
            }
            catch (Exception ex)
            {
                var wrapperEx = new PublisherSentFailedException(ex.Message, ex);

                return(OperateResult.Failed(wrapperEx));
            }
        }