From f3552dbdaa75b672c2dfdca75f79effda63d08b1 Mon Sep 17 00:00:00 2001 From: TekH Date: Tue, 7 Jul 2026 13:25:58 +0200 Subject: [PATCH] Add background service and update project configuration Added a `Worker` class as a hosted background service to log periodic messages. Updated `DigitalData.EmailProfiler.API.csproj` to include `UserSecretsId` for secure development storage and added `Microsoft.Extensions.Hosting` package. Replaced the `Controllers` folder reference with `Properties`. Updated `Program.cs` to register the `Worker` service, enable API exploration, and retain Swagger configuration. --- .../DigitalData.EmailProfiler.API.csproj | 4 +++- src/DigitalData.EmailProfiler.API/Program.cs | 7 ++++--- src/DigitalData.EmailProfiler.API/Worker.cs | 16 ++++++++++++++++ 3 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 src/DigitalData.EmailProfiler.API/Worker.cs diff --git a/src/DigitalData.EmailProfiler.API/DigitalData.EmailProfiler.API.csproj b/src/DigitalData.EmailProfiler.API/DigitalData.EmailProfiler.API.csproj index 0c56541..ef6d119 100644 --- a/src/DigitalData.EmailProfiler.API/DigitalData.EmailProfiler.API.csproj +++ b/src/DigitalData.EmailProfiler.API/DigitalData.EmailProfiler.API.csproj @@ -4,14 +4,16 @@ net8.0 enable enable + dotnet-DigitalData.EmailProfiler.Service-e7ef6a9a-436f-48a1-b4f6-ec9381c8cb47 + - + diff --git a/src/DigitalData.EmailProfiler.API/Program.cs b/src/DigitalData.EmailProfiler.API/Program.cs index 48863a6..20adb8a 100644 --- a/src/DigitalData.EmailProfiler.API/Program.cs +++ b/src/DigitalData.EmailProfiler.API/Program.cs @@ -1,9 +1,10 @@ -var builder = WebApplication.CreateBuilder(args); +using DigitalData.EmailProfiler.API; -// Add services to the container. +var builder = WebApplication.CreateBuilder(args); +builder.Services.AddHostedService(); builder.Services.AddControllers(); -// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle + builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); diff --git a/src/DigitalData.EmailProfiler.API/Worker.cs b/src/DigitalData.EmailProfiler.API/Worker.cs new file mode 100644 index 0000000..1714e66 --- /dev/null +++ b/src/DigitalData.EmailProfiler.API/Worker.cs @@ -0,0 +1,16 @@ +namespace DigitalData.EmailProfiler.API; + +public class Worker(ILogger Logger) : BackgroundService +{ + protected override async Task ExecuteAsync(CancellationToken stoppingToken) + { + while (!stoppingToken.IsCancellationRequested) + { + if (Logger.IsEnabled(LogLevel.Information)) + { + Logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now); + } + await Task.Delay(1000, stoppingToken); + } + } +}