DotNetBrightener.Plugins.EventPubSub 2024.0.12.11400

There is a newer version of this package available.
See the version list below for details.
dotnet add package DotNetBrightener.Plugins.EventPubSub --version 2024.0.12.11400
NuGet\Install-Package DotNetBrightener.Plugins.EventPubSub -Version 2024.0.12.11400
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="2024.0.12.11400" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DotNetBrightener.Plugins.EventPubSub --version 2024.0.12.11400
#r "nuget: DotNetBrightener.Plugins.EventPubSub, 2024.0.12.11400"
#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=2024.0.12.11400

// Install DotNetBrightener.Plugins.EventPubSub as a Cake Tool
#tool nuget:?package=DotNetBrightener.Plugins.EventPubSub&version=2024.0.12.11400

Event Publish/Subscribe Library

© DotNet Brightener

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 net8.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (10)

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

Package Downloads
DotNetBrightener.DataAccess.EF

Package Description

DotNetBrightener.Plugins.EventPubSub.DependencyInjection

Package Description

DotNetBrightener.SimpleUploadService

A Simple Upload API for ASP.NET Core Applications

DotNetBrightener.Core.BackgroundTasks

Package Description

DotNetBrightener.WebApp.CommonShared

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2024.0.12.12514 36 5/4/2024
2024.0.12.12512 38 5/4/2024
2024.0.12.12510 39 5/4/2024
2024.0.12.12420 24 5/3/2024
2024.0.12.12319 0 5/2/2024
2024.0.12.12319-rc-2405021801 0 5/2/2024
2024.0.12.12318 0 5/2/2024
2024.0.12.12215 74 5/1/2024
2024.0.12.12011 130 4/29/2024
2024.0.12.11720 145 4/26/2024
2024.0.12.11719 140 4/26/2024
2024.0.12.11621 176 4/25/2024
2024.0.12.11523 152 4/24/2024
2024.0.12.11522 159 4/24/2024
2024.0.12.11417 150 4/23/2024
2024.0.12.11400 151 4/22/2024
2024.0.12.11316 146 4/22/2024
2024.0.11.10220 139 4/11/2024
2024.0.11.10120 119 4/10/2024
2024.0.11.10119 113 4/10/2024
2024.0.11.10115 125 4/10/2024
2024.0.11.9914 138 4/8/2024
2024.0.11.9901 124 4/7/2024
2024.0.11.9823 128 4/7/2024
2024.0.11.9401 132 4/2/2024
2024.0.11.9301 118 4/1/2024
2024.0.11.9206 116 3/31/2024
2024.0.11.9205 110 3/31/2024
2024.0.11.8200 138 3/21/2024
2024.0.11.8122 104 3/21/2024
2024.0.11.8120 124 3/21/2024
2024.0.11.7320 168 3/13/2024
2024.0.11.7316 133 3/13/2024
2024.0.11.7310 121 3/13/2024
2024.0.11 127 3/13/2024
2024.0.10 145 3/3/2024
2024.0.9 144 2/27/2024
2024.0.8 180 2/1/2024
2024.0.7 130 1/26/2024
2024.0.6 123 1/25/2024
2024.0.5 122 1/24/2024
2024.0.4 119 1/24/2024
2024.0.3 132 1/22/2024
2024.0.2 181 1/10/2024
2024.0.1 137 1/9/2024
2024.0.1-alpha-3 111 1/9/2024
2024.0.1-alpha-2 101 1/9/2024
2024.0.1-alpha-1 136 1/3/2024
2024.0.0 171 12/26/2023
2023.0.27 216 12/21/2023
2023.0.26 175 12/21/2023
2023.0.25 237 12/11/2023
2023.0.24 225 12/8/2023
2023.0.23 189 12/6/2023
2023.0.21 249 12/4/2023
2023.0.20 245 11/27/2023
2023.0.19 180 11/20/2023
2023.0.18 220 10/25/2023
2023.0.17 269 10/22/2023
2023.0.16 249 10/16/2023
2023.0.16-alpha-1 138 10/16/2023
2023.0.15 207 10/14/2023
2023.0.14 182 10/14/2023
2023.0.13 167 10/14/2023
2023.0.12 194 10/14/2023
2023.0.11 179 10/10/2023
2023.0.10 197 10/9/2023
2023.0.9 302 8/16/2023
2023.0.8 245 8/15/2023
2023.0.8-alpha-2 310 5/31/2023
2023.0.7 265 5/12/2023
2023.0.6 293 5/10/2023
2023.0.5 270 5/7/2023
2023.0.4 298 4/22/2023
2023.0.3 331 4/19/2023
2023.0.2 326 4/6/2023
2023.0.1 351 3/13/2023
2022.11.0 412 11/21/2022
2022.10.2 320 11/21/2022
2022.10.0 1,595 10/15/2022
2022.9.0 486 9/5/2022
2021.10.1 466 10/17/2021
1.0.0 478 1/19/2021