DotNetBrightener.Plugins.EventPubSub.Abstractions 2025.0.1-rc-243301701

This is a prerelease version of DotNetBrightener.Plugins.EventPubSub.Abstractions.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package DotNetBrightener.Plugins.EventPubSub.Abstractions --version 2025.0.1-rc-243301701                
NuGet\Install-Package DotNetBrightener.Plugins.EventPubSub.Abstractions -Version 2025.0.1-rc-243301701                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DotNetBrightener.Plugins.EventPubSub.Abstractions" Version="2025.0.1-rc-243301701" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DotNetBrightener.Plugins.EventPubSub.Abstractions --version 2025.0.1-rc-243301701                
#r "nuget: DotNetBrightener.Plugins.EventPubSub.Abstractions, 2025.0.1-rc-243301701"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install DotNetBrightener.Plugins.EventPubSub.Abstractions as a Cake Addin
#addin nuget:?package=DotNetBrightener.Plugins.EventPubSub.Abstractions&version=2025.0.1-rc-243301701&prerelease

// Install DotNetBrightener.Plugins.EventPubSub.Abstractions as a Cake Tool
#tool nuget:?package=DotNetBrightener.Plugins.EventPubSub.Abstractions&version=2025.0.1-rc-243301701&prerelease                

Event Publish/Subscribe Library

© DotNet Brightener

NuGet Version

Usage

Event message

Event message is a message that would be emitted by the IEventPublisher. The IEventHandler for the message will be proceeded sequentially, and will be stopped if the higher-prioritized handler tells the next one to stop by returning false in its HandleEvent method.

public class YourEventMessage: IEventMessage 
{
	// your model goes here
}
Non-Stopped event message

Non-stopped event message is the type of IEventMessage that will be handled by all the handlers regardless the result from the process of each handler.

public class YourEventMessage: INonStoppedEventMessage 
{
	// your model goes here
}
Define event handler

Define an event handler to process the event emitted by the IEventPublisher service as follow:

public class YourEventModelEventHandler: IEventHandler<YourEventMessage>
{
	// the higher number will tell the publisher to execute before the others
	public int Priority { get; } => 10;

	public async Task<bool> HandleEvent(YourEventMessage eventMessage) 
	{
		// do something with your eventMessage

		// if YourEventModel implements INonStoppedEventMessage, 
		// regardless the next statement, 
		// the next handler will continue to process in parallel

		// if you want to let the next handler to process the message
		return true;

		// otherwise, return false here;
		// return false;
	}
}

Emit the event

Inject IEventPublisher to your controller / service class and use it as follow:


public class SomeService 
{
	private readonly IEventPublisher _eventPublisher;
	// other services

	public SomeService(IEventPublisher eventPublisher, 
						// other services
						)
	{
		_eventPublisher = eventPublisher;
	}

	public async Task SomeMethod() 
	{
		var eventMessage = new YourEventMessage
		{
			// the event content
		};

		// if you want to let the event message to be processed in the current thread
		await _eventPublisher.Publish(eventMessage);

		// if you want to let the event message to be processed in the another thread
		await _eventPublisher.Publish(eventMessage, true);
	}
}

Register at startup

You will need to install the package DotNetBrightener.Plugins.EventPubSub.DependencyInjection from nuget.org and follow instruction there.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on DotNetBrightener.Plugins.EventPubSub.Abstractions:

Package Downloads
DotNetBrightener.Plugins.EventPubSub

An event publisher / subscriber library for .Net Core Application

DotNetBrightener.DataAccess.Abstractions.Models

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2025.0.2-preview-277 204 12/16/2024
2025.0.1-rc-243301701 322 11/25/2024
2024.0.14.6 287 11/25/2024
2024.0.14.6-rc-243031001 370 10/29/2024
2024.0.14.6-rc-243030701 303 10/29/2024
2024.0.14.6-rc-242840501 290 10/10/2024
2024.0.14.6-rc-242820305 282 10/8/2024
2024.0.14.6-rc-242771401 447 10/3/2024
2024.0.14.6-rc-242770501 281 10/3/2024
2024.0.14.6-rc-242770201 283 10/3/2024
2024.0.14.6-rc-242761801 281 10/2/2024
2024.0.14.6-rc-242761601 294 10/2/2024
2024.0.14.6-rc-242761501 282 10/2/2024
2024.0.14.6-rc-242761401 299 10/2/2024
2024.0.14.6-rc-242760701 307 10/2/2024
2024.0.14.6-rc-242751002 299 10/1/2024
2024.0.14.6-rc-242750901 317 10/1/2024
2024.0.14.6-rc-242750502 307 10/1/2024
2024.0.14.6-rc-242750201 324 10/1/2024
2024.0.14.6-rc-242741501 294 9/30/2024
2024.0.14.6-rc-242730701 322 9/29/2024
2024.0.14.6-preview-2730501 278 9/29/2024
2024.0.14.6-preview-2701501 306 9/26/2024
2024.0.14.6-preview-2620901 343 9/18/2024
2024.0.14.6-preview-2570701 345 9/13/2024
2024.0.14.6-preview-2510703 438 9/7/2024
2024.0.14.6-preview-2480501 451 9/4/2024
2024.0.14.6-preview-2430401 393 8/30/2024
2024.0.14.6-preview-242730701 309 9/29/2024
2024.0.14.6-preview-2421703 332 8/29/2024
2024.0.14.6-preview-2421701 318 8/29/2024
2024.0.14.6-preview-2420901 316 8/29/2024
2024.0.14.6-preview-2390101 351 8/26/2024
2024.0.14.6-preview-2381603 326 8/25/2024
2024.0.14.6-preview-2341601 349 8/21/2024
2024.0.14.6-preview-2321602 317 8/20/2024
2024.0.14.6-preview-2190801 304 8/6/2024
2024.0.14.6-preview-2041501 285 7/22/2024
2024.0.14.6-preview-1920603 349 7/10/2024
2024.0.14.6-preview-1920301 305 7/10/2024
2024.0.14.6-preview-1911302 306 7/9/2024
2024.0.14.6-preview-1901001 308 7/8/2024
2024.0.14.6-preview-1900901 279 7/8/2024
2024.0.14.6-preview-1900801 279 7/8/2024
2024.0.14.6-preview-1860304 290 7/4/2024
2024.0.14.5 395 7/1/2024
2024.0.14.5-preview-1811601 301 6/29/2024
2024.0.14.5-preview-1810501 330 6/29/2024
2024.0.14.5-preview-180132 379 6/28/2024
2024.0.14.5-preview-180131 307 6/28/2024
2024.0.14.5-preview-180121 298 6/28/2024
2024.0.14.4 452 6/27/2024
2024.0.14.4-preview-7 328 6/27/2024
2024.0.14.3 348 6/21/2024
2024.0.14.1 331 6/6/2024
2024.0.14.1-preview 315 6/6/2024
2024.0.14-preview-1 292 6/6/2024
2024.0.13.8-preview 333 6/6/2024
2024.0.13.1-preview-0146 373 6/6/2024
2024.0.12.15803-preview-03 308 6/6/2024
2024.0.12.15608 325 6/4/2024
2024.0.12.15515 384 6/3/2024
2024.0.12.15220 307 5/31/2024
2024.0.12.15220-alpha31-240... 298 5/31/2024
2024.0.12.14911 355 5/28/2024
2024.0.12.14910-alpha28-240... 314 5/28/2024
2024.0.12.14823 350 5/27/2024
2024.0.12.14522-alpha7-2405... 309 5/24/2024
2024.0.12.14514-alpha6-2405... 327 5/24/2024
2024.0.12.14511 357 5/24/2024
2024.0.12.14314 392 5/22/2024