namespace HotelPms.Share.NetWork
{
///
/// A delegating handler that will add a subdirectory to the URI of gRPC requests.
///
public class SubdirectoryHandler : DelegatingHandler
{
private readonly string _subdirectory;
public SubdirectoryHandler(HttpMessageHandler innerHandler, string subdirectory) : base(innerHandler)
{
_subdirectory = subdirectory;
}
protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
if (request.RequestUri != null)
{
var url = $"{request.RequestUri.Scheme}://{request.RequestUri.Host}{_subdirectory}{request.RequestUri.AbsolutePath}";
request.RequestUri = new Uri(url, UriKind.Absolute);
}
return base.SendAsync(request, cancellationToken);
}
}
}