internal RabbitMQTaskQueueListenerAdapterInstance(Func<IListenerAdapter> listenerAdapterFactory, Func<IRabbitMQQueueMonitor> queueMionitorFactory)
        {
            using (var proc = Process.GetCurrentProcess())
            {
                if (proc.SessionId > 0)
                {
                    _messagePublicationNotificationServiceUri = new Uri($"net.tcp://localhost:41781/RabbitMQTaskQueueListenerAdapter_{Guid.NewGuid():N}");
                }
            }
            _queueMon = queueMionitorFactory();
            _queueMon.MessagePublished += QueueMonitor_MessagePublished;

            _msgPubNotificationSvc = new MessagePublicationNotificationService(_queueMon);
            _msgPubNotificationSvcHost = new ServiceHost(_msgPubNotificationSvc, _messagePublicationNotificationServiceUri);
            _msgPubNotificationSvcHost.AddServiceEndpoint(typeof(IWasInteropService), BindingFactory.Create(_messagePublicationNotificationServiceUri), string.Empty);
            _msgPubNotificationSvcHost.Open();

            TraceInformation($"Created callback queue on {_messagePublicationNotificationServiceUri}.", GetType());

            _listenerAdapter = listenerAdapterFactory();

            _listenerAdapter.ApplicationCreated += ListenerAdapter_ApplicationCreated;
            _listenerAdapter.ApplicationDeleted += ListenerAdapter_ApplicationDeleted;
            _listenerAdapter.ApplicationRequestBlockedStateChanged += ListenerAdapter_ApplicationRequestBlockedStateChanged;

            _listenerAdapter.ApplicationPoolCanOpenNewListenerChannelInstance += ListenerAdapter_ApplicationPoolCanOpenNewListenerChannelInstance;
            _listenerAdapter.ApplicationPoolListenerChannelInstancesStopped += ListenerAdapter_ApplicationPoolListenerChannelInstancesStopped;
            _listenerAdapter.ApplicationPoolStateChanged += ListenerAdapter_ApplicationPoolStateChanged;
            _listenerAdapter.ApplicationAppPoolChanged += ListenerAdapter_ApplicationAppPoolChanged;
            _listenerAdapter.ApplicationPoolCreated += ListenerAdapter_ApplicationPoolCreated;
            _listenerAdapter.ApplicationPoolDeleted += ListenerAdapter_ApplicationPoolDeleted;
        }
        /// <summary>   Constructor. </summary>
        ///
        /// <param name="processesesMonitor">   The processes monitor. </param>
        /// <param name="loggerFactory">    The logger factory. </param>
        /// <param name="configuration">    The configuration. </param>
        /// <param name="listenerAdapter">  The listener adapter. </param>

        public NotificationsService(INotificationsProcessor processesesMonitor, ILoggerFactory loggerFactory,
                                    INotificationServiceConfiguration configuration, IListenerAdapter listenerAdapter)
        {
            ProcessesesMonitor = processesesMonitor;
            Logger             = loggerFactory.CreateLogger("TestLogger");
            Configuration      = configuration;
            ListenerAdapter    = listenerAdapter;
        }
Exemple #3
0
 public MessageQueue(DotQueueAddress address, IApiTokenSource tokenSource = null)
 {
     _tokenSource     = tokenSource;
     _httpAdapter     = new HttpAdapter <T>(address, new JsonSerializer <T>(), new JsonSerializer <Message>(), _tokenSource);
     _listenerAdapter = new ListenerAdapter <T>();
     _portResolver    = new LocalPortResolver();
     _durationHelper  = new WaitDurationHelper();
     InitializeQueueTasks(address);
 }
 public void Setup()
 {
     _durationHelper = Substitute.For <IWaitDurationHelper>();
     _durationHelper.SubscribtionRenewalSpan().Returns(TimeSpan.FromMilliseconds(100));
     _portResolver = Substitute.For <ILocalPortResolver>();
     _portResolver.FindFreePort().Returns(_defaultLocalPort);
     _listenerAdapter = Substitute.For <IListenerAdapter <Profile> >();
     _httpAdapter     = Substitute.For <IHttpAdapter <Profile> >();
     _messageQueue    = new MessageQueue <Profile>(_defaultAddress,
                                                   _httpAdapter, _listenerAdapter, _portResolver, _durationHelper);
 }
Exemple #5
0
 internal MessageQueue(DotQueueAddress address,
                       IHttpAdapter <T> httpAdapter,
                       IListenerAdapter <T> listenerAdapter,
                       ILocalPortResolver portResolver,
                       IWaitDurationHelper durationHelper)
 {
     _durationHelper  = durationHelper;
     _portResolver    = portResolver;
     _listenerAdapter = listenerAdapter;
     _httpAdapter     = httpAdapter;
     InitializeQueueTasks(address);
 }