Implemented Email and Hash Service

This commit is contained in:
2026-08-20 16:14:35 +02:00
parent 7415a53ee2
commit 8fb4aac0c1
13 changed files with 452 additions and 0 deletions
@@ -0,0 +1,12 @@
using System.Diagnostics;
using System.Diagnostics.Metrics;
namespace PostFundManagement.Domain.Extensions;
public static class EmailTelemetry
{
public static readonly ActivitySource Source = new("LiteCharms.EmailService");
public static readonly Meter Meter = new("LiteCharms.EmailService");
public static readonly Counter<long> EmailsSent = Meter.CreateCounter<long>("emails_sent_total", "count", "Total successful emails sent");
public static readonly Counter<long> EmailsFailed = Meter.CreateCounter<long>("emails_failed_total", "count", "Total failed email attempts");
}
@@ -0,0 +1,23 @@
using PostFundManagement.Domain.Configuration.Hash;
using PostFundManagement.Domain.Services;
namespace PostFundManagement.Domain.Extensions;
public static class Hash
{
public const string HasherConfigSectionName = "HasherSettings";
public static IServiceCollection AddHashServices(this IServiceCollection services, IConfiguration configuration)
{
services.Configure<HasherSettings>(configuration.GetSection(HasherConfigSectionName));
var settings = configuration.GetSection(HasherConfigSectionName).Get<HasherSettings>();
services.AddSingleton<IHashids>(_ =>
new Hashids(settings!.Salt, minHashLength: settings.MinHashLength));
services.AddSingleton<HashService>();
return services;
}
}