Exemple #1
0
 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);
        }