private async Task Publish(DomainEventBase domainEvent) { try { var serializedDomainEvent = DomainEventJsonSerializer.Serialize(domainEvent); await Task.Run(() => _rabbitMqPublisher.Publish(_exchangeName, domainEvent.EventName(), serializedDomainEvent)); } catch (RabbitMQClientException ex) { throw new Exception(ex.Message); } }
/// <summary> /// /// </summary> /// <param name="connectionMultiplexer"></param> /// <param name="executeMiddlewaresService"></param> /// <param name="domainEventJsonSerializer"></param> public RedisEventBus( IConnectionMultiplexer connectionMultiplexer, ExecuteMiddlewaresService executeMiddlewaresService, DomainEventJsonSerializer domainEventJsonSerializer) { _connectionMultiplexer = connectionMultiplexer; _executeMiddlewaresService = executeMiddlewaresService; _domainEventJsonSerializer = domainEventJsonSerializer; }
/// <summary> /// /// </summary> /// <param name="executeMiddlewaresService"></param> /// <param name="domainEventJsonSerializer"></param> /// <param name="config"></param> /// <param name="rabbitMqParams"></param> public RabbitMqEventBus( // MsSqlEventBus failOverPublisher, ExecuteMiddlewaresService executeMiddlewaresService, DomainEventJsonSerializer domainEventJsonSerializer, RabbitMqConnectionFactory config, IOptions <RabbitMqConfigParams> rabbitMqParams) { // _failOverPublisher = failOverPublisher; _executeMiddlewaresService = executeMiddlewaresService; _domainEventJsonSerializer = domainEventJsonSerializer; _config = config; _rabbitMqParams = rabbitMqParams; }
private async Task Publish(DomainEvent domainEvent) { try { var serializedDomainEvent = DomainEventJsonSerializer.Serialize(domainEvent); _rabbitMqPublisher.Publish(_exchangeName, domainEvent.EventName(), serializedDomainEvent); } catch (RabbitMQClientException e) { await _failOverPublisher.Publish(new List <DomainEvent> { domainEvent }); } }