public async void SentToSpecific()
        {
            var settingsMock = RabbitMqSettingsTest.GetSettingsMock();

            var queueBuilderMock  = new Mock <IQueueBuilder>();
            var busControllerMock = new Mock <IBusControl>();
            var sendEndpointMock  = new Mock <ISendEndpoint>();

            sendEndpointMock
            .Setup(x => x.Send(It.IsAny <DummyClass>(), It.IsAny <CancellationToken>()))
            .Returns(async() => {});

            busControllerMock
            .Setup(x => x.GetSendEndpoint(It.IsAny <Uri>()))
            .Returns(Task.FromResult(sendEndpointMock.Object));

            var sender = new RabbitMqSender(busControllerMock.Object, queueBuilderMock.Object, settingsMock.Object);
            await sender.SendToSpecific("MyQueue", new DummyClass());

            // Verify that the MassTransit calls are executed
            busControllerMock.Verify(mock => mock.GetSendEndpoint(It.IsAny <Uri>()), Times.Once());
            sendEndpointMock.Verify(mock => mock.Send(It.IsAny <DummyClass>(), It.IsAny <CancellationToken>()), Times.Once());

            // Verify that the send endpoint is fresh
            await sender.SendToSpecific("MyQueue", new DummyClass());

            busControllerMock.Verify(mock => mock.GetSendEndpoint(It.IsAny <Uri>()), Times.Exactly(2));
            sendEndpointMock.Verify(mock => mock.Send(It.IsAny <DummyClass>(), It.IsAny <CancellationToken>()), Times.Exactly(2));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Send message to Rabbitmq
        /// </summary>
        /// <param name="exchange"></param>
        /// <param name="message"></param>
        public void SendMessage(string exchange, string message)
        {
            var topics        = GetSubscriptionTopics(message);
            var correlationId = Guid.NewGuid().ToString();

            foreach (var topic in topics)
            {
                var rabbit = new RabbitMqSender(exchange: exchange, topic: topic);
                rabbit.Publish(message, correlationId);
            }
            Console.WriteLine(
                $"{DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}: Message with CorrelationId: {correlationId} was sent to the integration broker: {message}");
            Console.WriteLine("------------------------------------------------------------");
        }
        public async void Stop()
        {
            var settingsMock      = RabbitMqSettingsTest.GetSettingsMock();
            var queueBuilderMock  = new Mock <IQueueBuilder>();
            var busControllerMock = new Mock <IBusControl>();
            var sendEndpointMock  = new Mock <ISendEndpoint>();

            busControllerMock
            .Setup(x => x.StopAsync(It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(sendEndpointMock.Object));

            var sender = new RabbitMqSender(busControllerMock.Object, queueBuilderMock.Object, settingsMock.Object);
            await sender.Stop();

            // Verify that the MassTransit calls are executed
            busControllerMock.Verify(x => x.StopAsync(It.IsAny <CancellationToken>()), Times.Once());
        }
Ejemplo n.º 4
0
        public SchedulerService(ISettingService settingService, IJobService jobService, ILog log)
        {
            _jobService = jobService;
            _log        = log;

            _cancellationTokenSource = new CancellationTokenSource();
            _cancellationToken       = _cancellationTokenSource.Token;

            var exchange =
                settingService.GetSettingValueByKey(Constant.SYSTEM_INFRASTRUCTURE_RABBITMQ_DEFAULT_EXCHANGE);
            var routekey =
                settingService.GetSettingValueByKey(Constant.SYSTEM_INFRASTRUCTURE_RABBITMQ_DEFAULT_ROUTEKEY);

            _rabbitMqSender = new RabbitMqSender <MessageBody>(
                settingService.GetSettingValueByKey(Constant.SYSTEM_INFRASTRUCTURE_RABBITMQ_CONNECTIONSTRING),
                exchange, routekey);

            _rabbitMqSender.SubscribeEvents(message => { _log.Info($"{exchange}_{routekey} : {message}"); });
        }
Ejemplo n.º 5
0
        protected override void InitializeTarget()
        {
            if (string.IsNullOrEmpty(ConnectionString))
            {
                throw new ArgumentNullException(nameof(ConnectionString));
            }
            if (string.IsNullOrEmpty(QueueName))
            {
                throw new ArgumentNullException(nameof(QueueName));
            }

            var sender   = new RabbitMqSender(ConnectionString, QueueName);
            var settings = new ClientSettings
            {
                SourceName          = Source,
                InstanceName        = Instance,
                AutoKeepAliveEnable = true
            };

            monikClient = new MonikClient(sender, settings);
        }
Ejemplo n.º 6
0
        private void ConfigureMonik(ContainerBuilder builder, IConfigurationRoot config)
        {
            var logSender = new RabbitMqSender(
                config["MonikSettings:EndPoint"],
                "MonikQueue");

            builder
            .RegisterInstance <IMonikSender, RabbitMqSender>(logSender);

            var monikSettings = new ClientSettings
            {
                SourceName          = "ReportServer",
                InstanceName        = config["MonikSettings:InstanceName"],
                AutoKeepAliveEnable = true
            };

            builder
            .RegisterInstance <IMonikSettings, ClientSettings>(monikSettings);

            builder
            .RegisterImplementationSingleton <IMonik, MonikClient>();
        }