From 1a1c8e71fcd14858f595029f089b2d4a00202b32 Mon Sep 17 00:00:00 2001
From: ogi <Administrator@S-OGI-PC>
Date: Fri, 05 Dec 2025 09:24:16 +0900
Subject: [PATCH] プロジェクトファイルを追加。

---
 HotelPms.Client.Blazor/Util/GrpcSubDirHandler.cs |   69 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/HotelPms.Client.Blazor/Util/GrpcSubDirHandler.cs b/HotelPms.Client.Blazor/Util/GrpcSubDirHandler.cs
new file mode 100644
index 0000000..018e86a
--- /dev/null
+++ b/HotelPms.Client.Blazor/Util/GrpcSubDirHandler.cs
@@ -0,0 +1,69 @@
+#region Copyright notice and license
+
+// Copyright 2019 The gRPC Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.Http;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace HotelPms.Client.Blazor.Util
+{
+    /// <summary>
+    /// A delegating handler that will add a subdirectory to the URI of gRPC requests.
+    /// </summary>
+    public class GrpcSubDirHandler : DelegatingHandler
+    {
+        private readonly string _subdirectory;
+        private readonly IGlobalLoadingSpinner _loadingSpinnerService;
+
+        public GrpcSubDirHandler(HttpMessageHandler innerHandler, IGlobalLoadingSpinner loadingSpinnerService, string subdirectory) : base(innerHandler)
+        {
+            _subdirectory = subdirectory;
+            _loadingSpinnerService = loadingSpinnerService;
+        }
+
+        protected async override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
+        {
+            //发送请求之前显示加载指示器
+            //EnvironmentSetting.Debug($"ShowAsync begin:{DateTime.Now.ToString("HH:mm:ss fff")}");
+            //await _loadingSpinnerService.ShowAsync();   //0.5秒
+
+            EnvironmentSetting.Debug($"SendAsync begin:{DateTime.Now.ToString("HH:mm:ss fff")}");
+            //发送请求
+            if (request.RequestUri != null && _subdirectory.Length > 0)
+            {
+                var url = $"{request.RequestUri.Scheme}://{request.RequestUri.Host}{_subdirectory}{request.RequestUri.AbsolutePath}";
+                EnvironmentSetting.Debug($"SendAsync Url⇒{url}");
+                request.RequestUri = new Uri(url, UriKind.Absolute);
+            }
+            else
+            {
+                EnvironmentSetting.Debug($"SendAsync Url⇒{request.RequestUri.AbsolutePath}");
+            }
+            var response = await base.SendAsync(request, cancellationToken);
+
+            EnvironmentSetting.Debug($"SendAsync End:{DateTime.Now.ToString("HH:mm:ss fff")}");
+            //收到结果之后隐藏加载指示器
+            //await _loadingSpinnerService.HideAsync();
+            //EnvironmentSetting.Debug($"HideAsync End:{DateTime.Now.ToString("HH:mm:ss fff")}");
+            return response;
+        }
+    }
+}

--
Gitblit v1.10.0