40 lines
1.7 KiB
C#
40 lines
1.7 KiB
C#
using Core.Blueprint.Common.DependencyInjection;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
|
using Thalos.Domain.Decisions;
|
|
using Thalos.DAL.DependencyInjection;
|
|
using Thalos.Service.Application.Adapters;
|
|
using Thalos.Service.Application.Ports;
|
|
using Thalos.Service.Application.UseCases;
|
|
|
|
namespace Thalos.Service.Application.DependencyInjection;
|
|
|
|
/// <summary>
|
|
/// Registers thalos-service runtime orchestration and DAL adapters.
|
|
/// </summary>
|
|
public static class ThalosServiceRuntimeServiceCollectionExtensions
|
|
{
|
|
/// <summary>
|
|
/// Adds thalos-service runtime wiring aligned with blueprint runtime and thalos-dal runtime.
|
|
/// </summary>
|
|
/// <param name="services">Service collection.</param>
|
|
/// <returns>Service collection for fluent chaining.</returns>
|
|
public static IServiceCollection AddThalosServiceRuntime(this IServiceCollection services)
|
|
{
|
|
services.AddBlueprintRuntimeCore();
|
|
services.AddThalosDalRuntime();
|
|
services.TryAddSingleton<IIdentityPolicyDecisionService, IdentityPolicyDecisionService>();
|
|
services.TryAddSingleton<IIdentityTokenDecisionService, IdentityTokenDecisionService>();
|
|
|
|
services.TryAddSingleton<IIdentityPolicyGrpcContractAdapter, IdentityPolicyGrpcContractAdapter>();
|
|
|
|
services.TryAddSingleton<IIdentityTokenReadPort, IdentityTokenReadPortDalAdapter>();
|
|
services.TryAddSingleton<IIdentityPolicyContextReadPort, IdentityPolicyContextReadPortDalAdapter>();
|
|
|
|
services.TryAddSingleton<IIssueIdentityTokenUseCase, IssueIdentityTokenUseCase>();
|
|
services.TryAddSingleton<IEvaluateIdentityPolicyUseCase, EvaluateIdentityPolicyUseCase>();
|
|
|
|
return services;
|
|
}
|
|
}
|