public AmazonRecieveMessage(IAmazonInternalSettings amazonInternalSettings, AmazonSQSQueueContext amazonSQSQueueContext, IAmazonMessageProcessorFactory amazonMessageProcessorFactory) { _amazonMessageProcessorFactory = amazonMessageProcessorFactory; m_amazonInternalSettings = amazonInternalSettings ?? throw new ArgumentNullException(nameof(amazonInternalSettings)); m_amazonSqsQueueContext = amazonSQSQueueContext ?? throw new ArgumentNullException(nameof(amazonSQSQueueContext)); m_log = m_amazonInternalSettings.RebusLoggerFactory.GetLogger <AmazonRecieveMessage>(); }
/// <summary> /// Constructs the transport with the specified settings /// </summary> public AmazonSqsTransport(IAmazonInternalSettings amazonInternalSettings) { m_AmazonInternalSettings = amazonInternalSettings ?? throw new ArgumentNullException(nameof(amazonInternalSettings)); m_log = amazonInternalSettings.RebusLoggerFactory.GetLogger <AmazonSqsTransport>(); if (amazonInternalSettings.InputQueueAddress != null) { if (amazonInternalSettings.InputQueueAddress.Contains("/") && !Uri.IsWellFormedUriString(amazonInternalSettings.InputQueueAddress, UriKind.Absolute)) { var message = $"The input queue address '{amazonInternalSettings.InputQueueAddress}' is not valid - please either use a simple queue name (eg. 'my-queue') or a full URL for the queue endpoint (e.g. 'https://sqs.eu-central-1.amazonaws.com/234234234234234/somqueue')."; throw new ArgumentException(message, nameof(amazonInternalSettings.InputQueueAddress)); } } m_amazonSQSQueueContext = new AmazonSQSQueueContext(m_AmazonInternalSettings); m_AmazonSendMessageCommandFactory = new AmazonSendMessageCommandFactory(m_AmazonInternalSettings, m_amazonSQSQueueContext); m_amazonCreateSqsQueue = new AmazonCreateSQSQueue(m_AmazonInternalSettings); m_amazonSqsQueuePurgeUtility = new AmazonSQSQueuePurgeUtility(m_AmazonInternalSettings); m_AmazonMessageProcessorFactory = new AmazonMessageProcessorFactory(m_AmazonInternalSettings); m_AmazonRecieveMessage = new AmazonRecieveMessage(m_AmazonInternalSettings, m_amazonSQSQueueContext, m_AmazonMessageProcessorFactory); }