41 lines
1.4 KiB
C#
41 lines
1.4 KiB
C#
using Core.Blueprint.Common.Runtime;
|
|
using Furniture.DAL.Contracts;
|
|
using Furniture.DAL.Grpc;
|
|
|
|
namespace Furniture.DAL.Adapters;
|
|
|
|
/// <summary>
|
|
/// Default adapter implementation for furniture DAL gRPC contract translation.
|
|
/// </summary>
|
|
public sealed class FurnitureDalGrpcContractAdapter(IBlueprintSystemClock clock) : IFurnitureDalGrpcContractAdapter
|
|
{
|
|
/// <inheritdoc />
|
|
public FurnitureAvailabilityDalGrpcContract ToGrpcAvailabilityRequest(FurnitureAvailabilityLookupRequest request)
|
|
{
|
|
return new FurnitureAvailabilityDalGrpcContract(request.FurnitureId);
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public FurnitureAvailabilityLookupRequest FromGrpcAvailabilityRequest(FurnitureAvailabilityDalGrpcContract contract)
|
|
{
|
|
return new FurnitureAvailabilityLookupRequest(CreateEnvelope(), contract.FurnitureId);
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public CatalogProductDalGrpcContract ToGrpcCatalogRequest(CatalogProductLookupRequest request)
|
|
{
|
|
return new CatalogProductDalGrpcContract(request.ProductId);
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public CatalogProductLookupRequest FromGrpcCatalogRequest(CatalogProductDalGrpcContract contract)
|
|
{
|
|
return new CatalogProductLookupRequest(CreateEnvelope(), contract.ProductId);
|
|
}
|
|
|
|
private FurnitureDalContractEnvelope CreateEnvelope()
|
|
{
|
|
return new FurnitureDalContractEnvelope("1.0.0", $"corr-{clock.UtcNow:yyyyMMddHHmmssfff}");
|
|
}
|
|
}
|