DotNetBrightener.Plugins.EventPubSub 2025.0.2-preview-277

This is a prerelease version of DotNetBrightener.Plugins.EventPubSub.
dotnet add package DotNetBrightener.Plugins.EventPubSub --version 2025.0.2-preview-277                
NuGet\Install-Package DotNetBrightener.Plugins.EventPubSub -Version 2025.0.2-preview-277                
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" Version="2025.0.2-preview-277" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DotNetBrightener.Plugins.EventPubSub --version 2025.0.2-preview-277                
#r "nuget: DotNetBrightener.Plugins.EventPubSub, 2025.0.2-preview-277"                
#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 as a Cake Addin
#addin nuget:?package=DotNetBrightener.Plugins.EventPubSub&version=2025.0.2-preview-277&prerelease

// Install DotNetBrightener.Plugins.EventPubSub as a Cake Tool
#tool nuget:?package=DotNetBrightener.Plugins.EventPubSub&version=2025.0.2-preview-277&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 (14)

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

Package Downloads
DotNetBrightener.Core.BackgroundTasks

Package Description

DotNetBrightener.Plugins.EventPubSub.DependencyInjection

Package Description

DotNetBrightener.SimpleUploadService

A Simple Upload API for ASP.NET Core Applications

DotNetBrightener.WebApp.CommonShared

Package Description

DotNetBrightener.Infrastructure.ApiKeyAuthentication

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2025.0.2-preview-277 126 12/16/2024
2025.0.1-rc-243301701 239 11/25/2024
2024.0.14.6 176 11/25/2024
2024.0.14.6-rc-243031001 246 10/29/2024
2024.0.14.6-rc-243030701 180 10/29/2024
2024.0.14.6-rc-242840501 171 10/10/2024
2024.0.14.6-rc-242820305 161 10/8/2024
2024.0.14.6-rc-242771401 360 10/3/2024
2024.0.14.6-rc-242770501 162 10/3/2024
2024.0.14.6-rc-242770201 176 10/3/2024
2024.0.14.6-rc-242761801 162 10/2/2024
2024.0.14.6-rc-242761601 174 10/2/2024
2024.0.14.6-rc-242761501 160 10/2/2024
2024.0.14.6-rc-242761401 173 10/2/2024
2024.0.14.6-rc-242760701 183 10/2/2024
2024.0.14.6-rc-242751002 178 10/1/2024
2024.0.14.6-rc-242750901 189 10/1/2024
2024.0.14.6-rc-242750502 184 10/1/2024
2024.0.14.6-rc-242750201 209 10/1/2024
2024.0.14.6-rc-242741501 187 9/30/2024
2024.0.14.6-rc-242730701 196 9/29/2024
2024.0.14.6-preview-2730501 162 9/29/2024
2024.0.14.6-preview-2701501 197 9/26/2024
2024.0.14.6-preview-2620901 216 9/18/2024
2024.0.14.6-preview-2570701 211 9/13/2024
2024.0.14.6-preview-2510703 271 9/7/2024
2024.0.14.6-preview-2480501 292 9/4/2024
2024.0.14.6-preview-2430401 238 8/30/2024
2024.0.14.6-preview-242730701 171 9/29/2024
2024.0.14.6-preview-2421703 194 8/29/2024
2024.0.14.6-preview-2421701 192 8/29/2024
2024.0.14.6-preview-2420901 187 8/29/2024
2024.0.14.6-preview-2390101 207 8/26/2024
2024.0.14.6-preview-2381603 198 8/25/2024
2024.0.14.6-preview-2341601 214 8/21/2024
2024.0.14.6-preview-2321602 185 8/20/2024
2024.0.14.6-preview-2190801 205 8/6/2024
2024.0.14.6-preview-2041501 164 7/22/2024
2024.0.14.6-preview-1920603 232 7/10/2024
2024.0.14.6-preview-1920301 165 7/10/2024
2024.0.14.6-preview-1911302 170 7/9/2024
2024.0.14.6-preview-1901001 164 7/8/2024
2024.0.14.6-preview-1900901 149 7/8/2024
2024.0.14.6-preview-1900801 159 7/8/2024
2024.0.14.6-preview-1860304 148 7/4/2024
2024.0.14.5 261 7/1/2024
2024.0.14.5-preview-1811601 188 6/29/2024
2024.0.14.5-preview-1810501 193 6/29/2024
2024.0.14.5-preview-180132 198 6/28/2024
2024.0.14.5-preview-180131 175 6/28/2024
2024.0.14.5-preview-180121 180 6/28/2024
2024.0.14.4 238 6/27/2024
2024.0.14.4-preview-7 185 6/27/2024
2024.0.14.3 187 6/21/2024
2024.0.14.1 193 6/6/2024
2024.0.14.1-preview 171 6/6/2024
2024.0.14-preview-1 168 6/6/2024
2024.0.13.8-preview 194 6/6/2024
2024.0.13.1-preview-0146 205 6/6/2024
2024.0.12.15803-preview-03 175 6/6/2024
2024.0.12.15608 191 6/4/2024
2024.0.12.15515 265 6/3/2024
2024.0.12.15220 186 5/31/2024
2024.0.12.15220-alpha31-240... 161 5/31/2024
2024.0.12.14911 228 5/28/2024
2024.0.12.14910-alpha28-240... 193 5/28/2024
2024.0.12.14823 207 5/27/2024
2024.0.12.14522-alpha7-2405... 190 5/24/2024
2024.0.12.14514-alpha6-2405... 196 5/24/2024
2024.0.12.14511 209 5/24/2024
2024.0.12.14314 252 5/22/2024
2024.0.12.14114 297 5/20/2024
2024.0.12.12815 302 5/7/2024
2024.0.12.12814 262 5/7/2024
2024.0.12.12721 276 5/6/2024
2024.0.12.12702 264 5/5/2024
2024.0.12.12622 268 5/5/2024
2024.0.12.12514 249 5/4/2024
2024.0.12.12512 255 5/4/2024
2024.0.12.12510 246 5/4/2024
2024.0.12.12420 234 5/3/2024
2024.0.12.12319 193 5/2/2024
2024.0.12.12319-rc-2405021801 186 5/2/2024
2024.0.12.12318 193 5/2/2024
2024.0.12.12215 245 5/1/2024
2024.0.12.12011 212 4/29/2024
2024.0.12.11720 229 4/26/2024
2024.0.12.11719 221 4/26/2024
2024.0.12.11621 259 4/25/2024
2024.0.12.11523 241 4/24/2024
2024.0.12.11522 232 4/24/2024
2024.0.12.11417 239 4/23/2024
2024.0.12.11400 228 4/22/2024
2024.0.12.11316 223 4/22/2024
2024.0.11.10220 205 4/11/2024
2024.0.11.10120 194 4/10/2024
2024.0.11.10119 172 4/10/2024
2024.0.11.10115 185 4/10/2024
2024.0.11.9914 212 4/8/2024
2024.0.11.9901 206 4/7/2024
2024.0.11.9823 203 4/7/2024
2024.0.11.9401 203 4/2/2024
2024.0.11.9301 212 4/1/2024
2024.0.11.9206 190 3/31/2024
2024.0.11.9205 187 3/31/2024
2024.0.11.8200 223 3/21/2024
2024.0.11.8122 183 3/21/2024
2024.0.11.8120 194 3/21/2024
2024.0.11.7320 253 3/13/2024
2024.0.11.7316 198 3/13/2024
2024.0.11.7310 201 3/13/2024
2024.0.11 201 3/13/2024
2024.0.10 228 3/3/2024
2024.0.9 211 2/27/2024
2024.0.8 256 2/1/2024
2024.0.7 204 1/26/2024
2024.0.6 196 1/25/2024
2024.0.5 191 1/24/2024
2024.0.4 194 1/24/2024
2024.0.3 203 1/22/2024
2024.0.2 249 1/10/2024
2024.0.1 204 1/9/2024
2024.0.1-alpha-3 185 1/9/2024
2024.0.1-alpha-2 202 1/9/2024
2024.0.1-alpha-1 216 1/3/2024
2024.0.0 242 12/26/2023
2023.0.27 300 12/21/2023
2023.0.26 256 12/21/2023
2023.0.25 312 12/11/2023
2023.0.24 299 12/8/2023
2023.0.23 275 12/6/2023
2023.0.21 345 12/4/2023
2023.0.20 339 11/27/2023
2023.0.19 271 11/20/2023
2023.0.18 300 10/25/2023
2023.0.17 346 10/22/2023
2023.0.16 327 10/16/2023
2023.0.16-alpha-1 213 10/16/2023
2023.0.15 276 10/14/2023
2023.0.14 260 10/14/2023
2023.0.13 253 10/14/2023
2023.0.12 264 10/14/2023
2023.0.11 255 10/10/2023
2023.0.10 271 10/9/2023
2023.0.9 406 8/16/2023
2023.0.8 320 8/15/2023
2023.0.8-alpha-2 392 5/31/2023
2023.0.7 336 5/12/2023
2023.0.6 373 5/10/2023
2023.0.5 340 5/7/2023
2023.0.4 373 4/22/2023
2023.0.3 415 4/19/2023
2023.0.2 406 4/6/2023
2023.0.1 415 3/13/2023
2022.11.0 443 11/21/2022
2022.10.2 347 11/21/2022
2022.10.0 1,714 10/15/2022
2022.9.0 519 9/5/2022
2021.10.1 501 10/17/2021
1.0.0 518 1/19/2021