Add project files.

This commit is contained in:
Khwezi Mngoma
2026-05-09 18:27:55 +02:00
commit 101ed22d92
16 changed files with 1076 additions and 0 deletions
@@ -0,0 +1,30 @@
<Project Sdk="Microsoft.NET.Sdk.Worker">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UserSecretsId>dotnet-LiteCharmsScheduler-c4366aff-559c-484e-bc3b-5896afff53c8</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="LiteCharms.Abstractions" Version="1.13.0" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.7" />
<PackageReference Include="Mediator.SourceGenerator" Version="3.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<!-- Lite Charms Libraries -->
<ItemGroup>
<PackageReference Include="LiteCharms.Extensions" Version="1.13.0" />
<PackageReference Include="LiteCharms.Features" Version="1.13.0" />
<PackageReference Include="LiteCharms.Models" Version="1.13.0" />
</ItemGroup>
<!-- Shared Global Usings -->
<ItemGroup>
<Using Include="Quartz" />
</ItemGroup>
</Project>
+26
View File
@@ -0,0 +1,26 @@
using LiteCharms.Extensions;
using LiteCharmsScheduler.Workers;
using static LiteCharms.Abstractions.Constants;
var builder = Host.CreateApplicationBuilder(args);
builder.Services.AddMediator();
builder.Services.AddEmailServiceBus();
builder.Services.AddSalesServiceBus();
builder.Services.AddGeneralServiceBus();
builder.Services.AddEmailServices(builder.Configuration);
builder.Services.AddLeadGeneratorDatabase(builder.Configuration);
builder.Services.AddQuartzSchedulerClient(ShopSchedulerName, ShopSchedulerInstanceId, builder.Configuration);
builder.Services.AddHostedService<Worker>();
var host = builder.Build();
var schedulerFactory = host.Services.GetRequiredService<ISchedulerFactory>();
var scheduler = await schedulerFactory.GetScheduler(ShopSchedulerName);
if (!scheduler!.IsStarted)
await scheduler.Start();
host.Run();
@@ -0,0 +1,12 @@
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"profiles": {
"LiteCharmsScheduler": {
"commandName": "Project",
"dotnetRunMessages": true,
"environmentVariables": {
"DOTNET_ENVIRONMENT": "Development"
}
}
}
}
+17
View File
@@ -0,0 +1,17 @@
namespace LiteCharmsScheduler.Workers
{
public class Worker(ILogger<Worker> 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);
}
}
}
}
+22
View File
@@ -0,0 +1,22 @@
{
"Email": {
"Credentials": {
"Username": "shop@litecharms.co.za"
},
"Port": 465,
"Host": "mail.litecharms.co.za",
"UseSsl": true
},
"Monitoring": {
"ApiKey": "",
"Address": "http://aspire-dashboard-service.aspire.svc.cluster.local:18889",
"ServiceName": "LiteCharms.LeadGenerator"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}