Create a custom event provider
Shows a simple pseudo-code for writing an event provider based on file with options.
You can find more providers, such as Amazon and Azure, in the Optimizely NuGet feed.
using EPiServer.Events;
using EPiServer.Events.Providers;
using EPiServer.ServiceLocation;
using System;
using System.Threading;
using System.Threading.Tasks;
namespace CustomEventProvider {
[Options]
public class CustomEventProviderOptions {
public string CustomSetting {
get;
set;
} = "custom setting";
}
public class CustomEventProvider: EventProvider {
public CustomEventProvider(CustomEventProviderOptions options) {}
public override Task InitializeAsync() {
//Put initialization code here, example waiting for external callback and call OnMessageReceived(messages)
}
public override Task SendMessageAsync(EventMessage message, CancellationToken cancellationToken) {
//Put code to sends the provided message to other related sites.
}
public override void SendMessage(EventMessage message) {
throw new NotSupportedException("It doesn't need because there is already async version.");
}
}
}
Configure an event provider
To add a custom event provider, add the provider configuration to appsettings.json
as the following example shows:
{
"EPiServer" : {
"Cms" : {
"EventProviderOptions" : {
"Provider" : "CustomEventProvider.CustomEventProvider, CustomAssembly"
}
},
"CustomEventProviderOptions" : {
"CustomSetting" : "custom setting"
}
}
}
Updated 8 months ago