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/EnvironmentSetting.cs |  143 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 143 insertions(+), 0 deletions(-)

diff --git a/HotelPms.Client.Blazor/Util/EnvironmentSetting.cs b/HotelPms.Client.Blazor/Util/EnvironmentSetting.cs
new file mode 100644
index 0000000..ddacad6
--- /dev/null
+++ b/HotelPms.Client.Blazor/Util/EnvironmentSetting.cs
@@ -0,0 +1,143 @@
+using Grpc.Net.Client;
+using HotelPms.Data.Client;
+using HotelPms.Data.Common;
+using HotelPms.DataAccessGrpc.Client;
+using HotelPms.Share.Util;
+
+namespace HotelPms.Client.Blazor.Util
+{
+    public class EnvironmentSetting
+    {
+        /// <summary>
+        /// どこでも取得できるように
+        /// </summary>
+        public static IServiceCollection ServiceCollection { get; set; }
+
+        public static IServiceProvider ServiceProvider { get; set; }
+
+        /// <summary>
+        /// どこでも取得できるように
+        /// </summary>
+        public static GrpcChannel GrpcChannel { get; set; }
+
+        /// <summary>
+        /// 端末ID
+        /// </summary>
+        public static string ClientID = string.Empty;
+
+        /// <summary>
+        /// マスタ設定一覧の頁毎表示行設定
+        /// </summary>
+        public static int[] CountOfPage = new int[] { 5, 10, 50, 100, 999999 };
+
+        /// <summary>
+        /// マスタ設定一覧画面の操作列幅
+        /// </summary>
+        public const int MasterOpeColWidth = 250;
+
+        /// <summary>
+        /// マスタ設定一覧画面の操作列幅のCSS
+        /// </summary>
+        /// <returns></returns>
+        public static string GetOpeColWidthCss()
+        {
+            return GetWidthCss(MasterOpeColWidth);
+        }
+
+        /// <summary>
+        /// 幅CSSの取得
+        /// </summary>
+        /// <param name="width"></param>
+        /// <returns></returns>
+        public static string GetWidthCss(int width)
+        {
+            return $"width: {width}px;";
+        }
+
+        /// <summary>
+        /// データ設定関係のUserName
+        /// </summary>
+        public static string UserName { get; set; } = "Web";
+
+        /// <summary>
+        /// バックグラウンドのイメージ
+        /// </summary>
+        public static string BackgroundImage { get; set; } = "/bg1.jpg";
+
+        /// <summary>
+        /// gRPCのroot URL
+        /// </summary>
+        public static string BackendUrl { get; set; } = string.Empty;
+
+        /// <summary>
+        /// gRPCのサブDir
+        /// </summary>
+        public static string SubDir { get; set; } = string.Empty;
+
+        /// <summary>
+        /// サイトのサブPath
+        /// 例:「/pms/」後ろに「/」が必要
+        /// index.htmlの<base Href>と一致するもの
+        /// </summary>
+        public static string SiteSubDir { get; set; } = string.Empty;
+
+        public static bool IsDevelopment { get; set; } = false;
+
+        /// <summary>
+        /// appsettings.jsonを読む
+        /// </summary>
+        /// <param name="config"></param>
+        public static void Init(IConfiguration config)
+        {
+            ClientID = Guid.NewGuid().ToString();
+            BackendUrl = CConvert.ToString(config["BackendUrl"]);
+            SubDir = CConvert.ToString(config["SubDir"]);
+            SiteSubDir = CConvert.ToString(config["SiteSubDir"]);
+            EnvironmentSetting.Debug($"ClientID={ClientID},BackendUrl={BackendUrl},SubDir={SubDir},SiteSubDir={SiteSubDir}");
+        }
+
+        /// <summary>
+        /// ホテル日取得
+        /// </summary>
+        /// <param name="channel"></param>
+        /// <returns></returns>
+        public static async Task<DateTime> GetHotelDate()
+        {
+            using HotelAccess access = new DataAccessGrpc.Client.HotelAccess(GrpcChannel);
+            return await access.GetHotelDate();
+        }
+
+        /// <summary>
+        /// 採番
+        /// </summary>
+        /// <param name="type"></param>
+        /// <returns></returns>
+        public static async Task<int> GetSeq(ESeqType type)
+        {
+            Data.GrpcTable table = await GrpcClient.GetTableAsync(GrpcChannel, (int)ETableActionType.Sequence, ((int)type).ToString());
+            return CConvert.ToInt(table.GetValue(typeof(System.Int32)));
+        }
+
+        /// <summary>
+        /// 消費税率の取得
+        /// </summary>
+        /// <param name="date">利用日</param>
+        /// <param name="type">0.消費税 1.軽減税</param>
+        /// <returns></returns>
+        public static async Task<int> GetTaxRate(string date, int type)
+        {
+            Data.GrpcTable table = await GrpcClient.GetTableAsync(GrpcChannel, (int)ETableActionType.TaxRate, $"{date},{type}");
+            return CConvert.ToInt(table.GetValue(typeof(System.Int32)));
+        }
+
+        /// <summary>
+        /// システム全体ログON/OFF制御
+        /// </summary>
+        /// <param name="text"></param>
+        public static void Debug(string text)
+        {          
+            if(!IsDevelopment) { return; }
+            Console.WriteLine($"【{DateTime.Now.ToString("HH:mm:ss fff")}】{text}");
+        }
+    }
+}

--
Gitblit v1.10.0