in tools/code/publisher/ServicePolicy.cs [134:165]
private static FindServicePolicyDto GetFindServicePolicyDto(IServiceProvider provider)
{
var serviceDirectory = provider.GetRequiredService<ManagementServiceDirectory>();
var tryGetFileContents = provider.GetRequiredService<TryGetFileContents>();
var overrideFactory = provider.GetRequiredService<OverrideDtoFactory>();
var overrideDto = overrideFactory.Create<ServicePolicyName, ServicePolicyDto>();
return async (name, cancellationToken) =>
{
var contentsOption = await tryGetPolicyContents(name, cancellationToken);
return from contents in contentsOption
let dto = new ServicePolicyDto
{
Properties = new ServicePolicyDto.ServicePolicyContract
{
Format = "rawxml",
Value = contents.ToString()
}
}
let overrideDto = overrideFactory.Create<ServicePolicyName, ServicePolicyDto>()
select overrideDto(name, dto);
};
async ValueTask<Option<BinaryData>> tryGetPolicyContents(ServicePolicyName name, CancellationToken cancellationToken)
{
var policyFile = ServicePolicyFile.From(name, serviceDirectory);
return await tryGetFileContents(policyFile.ToFileInfo(), cancellationToken);
}
}