Files
tiku-backend.net/Tiku.Api/Configuration/TenantProvisioningStartupValidator.cs
xiong 33375a38d7
Some checks failed
ci / release-gate (push) Has been cancelled
refactor(architecture): harden module boundaries
2026-08-04 12:10:36 +08:00

28 lines
1.1 KiB
C#

using Microsoft.Extensions.Options;
using Tiku.Application.PlatformAdmin;
namespace Tiku.Api.Configuration;
internal sealed class TenantProvisioningStartupValidator(
ITenantProvisioningReadinessProbe readinessProbe,
IOptions<TenantProvisioningOptions> options,
ILogger<TenantProvisioningStartupValidator> logger) : IHostedService
{
public async Task StartAsync(CancellationToken cancellationToken)
{
var offeringCode = options.Value.DefaultBaseOfferingCode.Trim().ToLowerInvariant();
var available = await readinessProbe.IsPublishedBaseOfferingAvailableAsync(offeringCode, cancellationToken);
if (!available)
throw new InvalidOperationException(
$"TenantProvisioning:DefaultBaseOfferingCode '{offeringCode}' does not resolve to an effective published base offering version.");
logger.LogInformation("Validated default tenant provisioning offering {OfferingCode}", offeringCode);
}
public Task StopAsync(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
}