41 lines
1.7 KiB
C#
41 lines
1.7 KiB
C#
using Core.Blueprint.Common.DependencyInjection;
|
|
using Furniture.DAL.Adapters;
|
|
using Furniture.DAL.Caching;
|
|
using Furniture.DAL.Health;
|
|
using Furniture.DAL.Providers;
|
|
using Furniture.DAL.Providers.InMemory;
|
|
using Furniture.DAL.Repositories;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
|
|
|
namespace Furniture.DAL.DependencyInjection;
|
|
|
|
/// <summary>
|
|
/// Registers furniture DAL runtime provider, repository, and adapter implementations.
|
|
/// </summary>
|
|
public static class FurnitureDalServiceCollectionExtensions
|
|
{
|
|
/// <summary>
|
|
/// Adds furniture 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 AddFurnitureDalRuntime(this IServiceCollection services)
|
|
{
|
|
services.AddBlueprintRuntimeCore();
|
|
|
|
services.TryAddSingleton<IFurnitureDataProvider, InMemoryFurnitureDataProvider>();
|
|
services.TryAddSingleton<ICatalogDataProvider, InMemoryCatalogDataProvider>();
|
|
|
|
services.TryAddSingleton<ICacheInvalidationPolicy, FurnitureCacheInvalidationPolicy>();
|
|
services.TryAddSingleton<IFurnitureRepository, FurnitureRepository>();
|
|
services.TryAddSingleton<ICatalogRepository, CatalogRepository>();
|
|
|
|
services.TryAddSingleton<ICatalogProjectionContractAdapter, CatalogProjectionContractAdapter>();
|
|
services.TryAddSingleton<IFurnitureDalGrpcContractAdapter, FurnitureDalGrpcContractAdapter>();
|
|
services.TryAddSingleton<IDalDependencyHealthCheck, DalDependencyHealthCheck>();
|
|
|
|
return services;
|
|
}
|
|
}
|