private static FindServicePolicyDto GetFindServicePolicyDto()

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);
        }
    }