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