Esempio n. 1
0
        public async Task Handle(BookDeleteIntegrationEvent @event)
        {
            ItemSoldOutEvent evt = new ItemSoldOutEvent()
            {
                Id = @event.BookId
            };

            _logger.LogInformation("send BookDeleteIntegrationEvent to MediaR =>" + @event.BookId);
            await _mediator.Send(evt);
        }
        private void SendDeleteMessage(ItemSoldOutEvent message)
        {
            try
            {
                var connection = _eventBusConnectionFactory.CreateConnection();

                using var channel = connection.CreateModel();
                channel.QueueDeclare(queue: _settings.EventQueue, true, false);

                var body = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(message));

                channel.ConfirmSelect();
                channel.BasicPublish(exchange: "", routingKey: _settings.EventQueue, body: body);
                channel.WaitForConfirmsOrDie();
            }
            catch (Exception e)
            {
                _logger.LogWarning("Unable to initialize the event bus: {message}", e.Message);
            }
        }