IntegrationEvents.RabbitMq
1.1.2
dotnet add package IntegrationEvents.RabbitMq --version 1.1.2
NuGet\Install-Package IntegrationEvents.RabbitMq -Version 1.1.2
<PackageReference Include="IntegrationEvents.RabbitMq" Version="1.1.2" />
paket add IntegrationEvents.RabbitMq --version 1.1.2
#r "nuget: IntegrationEvents.RabbitMq, 1.1.2"
// Install IntegrationEvents.RabbitMq as a Cake Addin #addin nuget:?package=IntegrationEvents.RabbitMq&version=1.1.2 // Install IntegrationEvents.RabbitMq as a Cake Tool #tool nuget:?package=IntegrationEvents.RabbitMq&version=1.1.2
IntegrationEvents
IntegrationEvents is a library that provides a simple way to implement the Integration Events pattern.
Nuget packages
Name | Version | Downloads |
---|---|---|
IntegrationEvents.Abstractions | ||
IntegrationEvents.RabbitMq |
Installation
Add following nuget reference in business project:
PM> Install-Package IntegrationEvents.Abstractions
And add following nuget reference in integration project:
PM> Install-Package IntegrationEvents.RabbitMq
How to use
First of all, you need to create a class that derived from the IntegrationEvent
class.
public class OrderCreatedIntegrationEvent : IntegrationEvent
{
public OrderCreatedIntegrationEvent(Guid orderId, string orderName)
{
OrderId = orderId;
OrderName = orderName;
}
public Guid OrderId { get; }
public string OrderName { get; }
}
Then, you need to create a class that derived from the IntegrationEventHandler
class.
public class OrderCreatedIntegrationEventHandler : IIntegrationEventHandler<OrderCreatedIntegrationEvent>
{
public override Task Handle(OrderCreatedIntegrationEvent @event)
{
}
}
Finally, you need to register the IntegrationEventHandler
class in the IServiceCollection
.
services.AddIntegrationEventBus(builder =>
{
builder.AddIntegrationEventsWithRabbitMq();
builder.AddIntegrationEventHandler<OrderCreatedIntegrationEventHandler>();
});
Ok! Now you can publish the IntegrationEvent
class in the business project.
var integrationEventBus = serviceProvider.GetRequiredService<IIntegrationEventBus>();
await integrationEventBus.PublishAsync(new OrderCreatedIntegrationEvent(Guid.NewGuid(), "OrderName"));
Final
Leave a comment on GitHub if you have any questions or suggestions.
Turn on the star if you like this project.
License
This project is licensed under the MIT License
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- IntegrationEvents.Abstractions (>= 1.1.2)
- Microsoft.Extensions.Configuration.Abstractions (>= 6.0.0)
- Microsoft.Extensions.Logging (>= 5.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 6.0.0)
- Polly (>= 7.2.1)
- RabbitMQ.Client (>= 6.4.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.