/// <summary> /// Sends a prepared message /// </summary> /// <param name="logger"></param> /// <param name="message">The prepared message</param> /// <param name="queueType">The type of queue to use</param> /// <param name="userId"></param> /// <param name="xml">Optional xml content. This will be logged depending on the logging level.</param> /// <returns></returns> private async Task Send(ILogger logger, IMessagingMessage message, QueueType queueType, string userId = "99999999999", XDocument xml = null) { if (message == null) { throw new ArgumentNullException(nameof(message)); } logger.LogStartSend(queueType, message.MessageFunction, message.FromHerId, message.ToHerId, message.MessageId, userId, xml); IMessagingSender messageSender = null; try { messageSender = SenderPool.CreateCachedMessageSender(logger, message.To); await messageSender.SendAsync(message).ConfigureAwait(false); } catch (Exception ex) { throw new MessagingException(ex.Message) { EventId = EventIds.Send }; } finally { if (messageSender != null) { SenderPool.ReleaseCachedMessageSender(logger, message.To); } } logger.LogEndSend(queueType, message.MessageFunction, message.FromHerId, message.ToHerId, message.MessageId, userId); }
/// <summary> /// Sends a prepared message /// </summary> /// <param name="logger"></param> /// <param name="message">The prepared message</param> /// <param name="queueType">The type of queue to use</param> /// <param name="userId"></param> /// <param name="xml">Optional xml content. This will be logged depending on the logging level.</param> /// <returns></returns> private async Task Send(ILogger logger, IMessagingMessage message, QueueType queueType, string userId = "99999999999", XDocument xml = null) { if (message == null) { throw new ArgumentNullException(nameof(message)); } IMessagingSender messageSender = null; try { messageSender = SenderPool.CreateCachedMessageSender(logger, message.To); await messageSender.SendAsync(message).ConfigureAwait(false); } catch (Exception ex) { logger.LogException("Cannot send message to service bus. Invalid endpoint.", ex); throw new MessagingException(ex.Message) { EventId = EventIds.Send }; } finally { if (messageSender != null) { SenderPool.ReleaseCachedMessageSender(logger, message.To); } } }