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)); }
/// <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()); }
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}"); }); }
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); }
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>(); }