47 lines
2.0 KiB
C#
47 lines
2.0 KiB
C#
using Core.Blueprint.Common.DependencyInjection;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
|
using Thalos.DAL.Adapters;
|
|
using Thalos.DAL.Health;
|
|
using Thalos.DAL.Providers;
|
|
using Thalos.DAL.Providers.InMemory;
|
|
using Thalos.DAL.Repositories;
|
|
|
|
namespace Thalos.DAL.DependencyInjection;
|
|
|
|
/// <summary>
|
|
/// Registers thalos dal runtime provider, repository, and adapter implementations.
|
|
/// </summary>
|
|
public static class ThalosDalServiceCollectionExtensions
|
|
{
|
|
/// <summary>
|
|
/// Adds thalos dal runtime implementations aligned with blueprint runtime core.
|
|
/// </summary>
|
|
/// <param name="services">Service collection.</param>
|
|
/// <returns>Service collection for fluent chaining.</returns>
|
|
public static IServiceCollection AddThalosDalRuntime(this IServiceCollection services)
|
|
{
|
|
services.AddBlueprintRuntimeCore();
|
|
|
|
services.TryAddSingleton<InternalJwtUserDataProvider>();
|
|
services.TryAddSingleton<AzureAdUserDataProvider>();
|
|
services.TryAddSingleton<GoogleUserDataProvider>();
|
|
services.TryAddSingleton<IUserDataProvider, RoutedUserDataProvider>();
|
|
|
|
services.TryAddSingleton<InternalJwtPermissionDataProvider>();
|
|
services.TryAddSingleton<AzureAdPermissionDataProvider>();
|
|
services.TryAddSingleton<GooglePermissionDataProvider>();
|
|
services.TryAddSingleton<IPermissionDataProvider, RoutedPermissionDataProvider>();
|
|
|
|
services.TryAddSingleton<IRoleDataProvider, InMemoryRoleDataProvider>();
|
|
services.TryAddSingleton<IModuleDataProvider, InMemoryModuleDataProvider>();
|
|
services.TryAddSingleton<ITenantDataProvider, InMemoryTenantDataProvider>();
|
|
|
|
services.TryAddSingleton<IIdentityRepository, IdentityRepository>();
|
|
services.TryAddSingleton<IIdentityDalGrpcContractAdapter, IdentityDalGrpcContractAdapter>();
|
|
services.TryAddSingleton<IDalDependencyHealthCheck, DalDependencyHealthCheck>();
|
|
|
|
return services;
|
|
}
|
|
}
|