PaySky.NotificationService
1.0.9
See the version list below for details.
dotnet add package PaySky.NotificationService --version 1.0.9
NuGet\Install-Package PaySky.NotificationService -Version 1.0.9
<PackageReference Include="PaySky.NotificationService" Version="1.0.9" />
<PackageVersion Include="PaySky.NotificationService" Version="1.0.9" />
<PackageReference Include="PaySky.NotificationService" />
paket add PaySky.NotificationService --version 1.0.9
#r "nuget: PaySky.NotificationService, 1.0.9"
#:package PaySky.NotificationService@1.0.9
#addin nuget:?package=PaySky.NotificationService&version=1.0.9
#tool nuget:?package=PaySky.NotificationService&version=1.0.9
PaySky Notification Service
This package bundles the notification application and infrastructure layers, exposing a single extension method that wires up Hangfire, email, SMS, and logging dependencies.
Installation
dotnet add package PaySky.NotificationService
Configuration
Add a NotificationService section to your configuration source:
"NotificationService": {
"Hangfire": {
"ConnectionString": "Server=sqlserver,1433;Database=Hangfire;User Id=sa;Password=Your_password123;TrustServerCertificate=True;",
"SchemaName": "Hangfire",
"Queues": [ "email", "sms", "any" ]
},
"Logger": {
"ElasticSearchUrl": "https://localhost:9201",
"ElasticUserName": "elastic",
"ElasticPassword": "P@ssW0rd",
"IndexFormat": "notification-service",
"FilePath": "/var/log/notification-service.log"
},
"Mailtrap": {
"Host": "sandbox.smtp.mailtrap.io",
"Port": 2525,
"Username": "user",
"Password": "pass",
"FromEmail": "noreply@your-domain.com",
"FromName": "Notification Service",
"EnableSsl": true
},
"Vongage": {
"ApiKey": "your-api-key",
"ApiSecret": "your-api-secret"
}
}
Service registration
builder.Services.AddNotificationService(options =>
{
builder.Configuration.GetSection("NotificationService").Bind(options);
});
At runtime resolve INotificationRequestHandler or IJobScheduler to enqueue SMS or email notifications through Hangfire.
Usage Example
using NotificationService.Infrastructure.Interfaces;
using NotificationService.Infrastructure.Dtos;
public class MyService
{
private readonly INotificationRequestHandler _notificationHandler;
public MyService(INotificationRequestHandler notificationHandler)
{
_notificationHandler = notificationHandler;
}
public async Task<string> SendSmsNotification()
{
var request = new NotificationRequestDto
{
Type = "sms",
Sms = new SmsNotificationDto
{
To = "+1234567890",
Message = "Hello from PaySky!"
}
};
return await _notificationHandler.HandleAsync(request);
}
}
Important: If IntelliSense doesn't show the Interfaces or Dtos namespaces, type them manually - they are included in the package and will compile correctly.
| Product | Versions 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- FluentValidation (>= 11.11.0)
- FluentValidation.DependencyInjectionExtensions (>= 11.11.0)
- Hangfire.AspNetCore (>= 1.8.20)
- Hangfire.SqlServer (>= 1.8.20)
- MailKit (>= 4.12.1)
- Microsoft.Data.SqlClient (>= 5.2.1)
- Npgsql.EntityFrameworkCore.PostgreSQL (>= 9.0.4)
- Serilog.AspNetCore (>= 9.0.0)
- Serilog.Sinks.Elasticsearch (>= 10.0.0)
- Vonage (>= 7.20.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.