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

diff --git a/HotelPms.Client.Blazor/Util/MasterCore.cs b/HotelPms.Client.Blazor/Util/MasterCore.cs
new file mode 100644
index 0000000..84434dd
--- /dev/null
+++ b/HotelPms.Client.Blazor/Util/MasterCore.cs
@@ -0,0 +1,140 @@
+using Grpc.Net.Client;
+using HotelPms.Client.Blazor.Models;
+using HotelPms.Data.Client;
+using HotelPms.Data.Common;
+using HotelPms.Data.Master;
+using HotelPms.DataAccessGrpc.Client;
+using HotelPms.Share.IO;
+using HotelPms.Share.Util;
+using System.Data;
+
+namespace HotelPms.Client.Blazor.Util
+{
+    public class MasterCore
+    {
+        /// <summary>
+        /// マスタ名称取得
+        /// </summary>
+        /// <param name="tableName">「M_」なし</param>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public static async Task<string> GetName(string tableName, int id)
+        {
+            Data.GrpcTable table = await GrpcClient.GetTableAsync(EnvironmentSetting.GrpcChannel, (int)ETableActionType.MasterName, $"{tableName},{id}");
+            return CConvert.ToString(table.GetValue(typeof(string)));
+        }
+
+        public static async Task<string> GetSaleLoginName(int id)
+        {
+            Data.GrpcTable table = await GrpcClient.GetTableAsync(EnvironmentSetting.GrpcChannel, (int)ETableActionType.SalesLoginName, $"{id}");
+            return CConvert.ToString(table.GetValue(typeof(string)));
+        }
+
+        /// <summary>
+        /// 部屋タイプ名称
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public static async Task<string> GetRoomTypeName(int id)
+        {
+            string name = CacheStorage.Instance.GetMasterName(CacheStorage.Key.RoomTypeName, id);
+            if (name.Length > 0) { return name; }
+            name = await GetName("RoomType", id);
+            if (name.Length > 0) { CacheStorage.Instance.SetMasterName(CacheStorage.Key.RoomTypeName, id, name); }
+            return name;
+        }
+
+        /// <summary>
+        /// 部屋タイプ基本情報の取得
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public static async Task<RoomTypeBase> GetRoomTypeBase(int id)
+        {
+            try
+            {
+                Data.GrpcTable table = await GrpcClient.GetTableAsync(EnvironmentSetting.GrpcChannel, (int)ETableActionType.RoomTypeBase, id.ToString());
+                if (table.Rows.Count == 0) { return null; }
+                using DataTable data = table.ToDataTable();
+                return new RoomTypeBase(data.Rows[0]);
+            }
+            catch(Exception ex)
+            {
+                OperationLog.Instance.WriteLog($"GetRoomTypeBase:{ex.Message}");
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// 選択一覧用部屋タイプマスタを取得する
+        /// </summary>
+        /// <returns></returns>
+        public static async Task<DataTable> GetRoomTypeList()
+        {
+            try
+            {
+                Data.GrpcTable table = await GrpcClient.GetTableAsync(EnvironmentSetting.GrpcChannel, (int)ETableActionType.RoomTypeList, string.Empty);                
+                return table.ToDataTable();
+            }
+            catch (Exception ex)
+            {
+                OperationLog.Instance.WriteLog($"GetRoomTypeList:{ex.Message}");
+                return null;
+            }
+        }
+
+        public static async Task<DataTable> GetSalesLoginList()
+        {
+            try
+            {
+                Data.GrpcTable table = await GrpcClient.GetTableAsync(EnvironmentSetting.GrpcChannel, (int)ETableActionType.SalesLoginList, string.Empty);
+                return table.ToDataTable();
+            }
+            catch (Exception ex)
+            {
+                OperationLog.Instance.WriteLog($"GetSalesLoginList:{ex.Message}");
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// 科目マスタの情報を取得する
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public static async Task<Item> GetItem(string id)
+        {
+            try
+            {
+                using ItemAccess access = new DataAccessGrpc.Client.ItemAccess(EnvironmentSetting.GrpcChannel);
+                return await access.GetItemAsync(id);
+            }
+            catch (Exception ex)
+            {
+                OperationLog.Instance.WriteLog($"GetItem:{ex.Message}");
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// 部屋タイプ、人数の基本料金を取得する
+        /// </summary>
+        /// <param name="roomTypeID"></param>
+        /// <param name="personCount"></param>
+        /// <param name="useDate"></param>
+        /// <returns></returns>
+        public static async Task<Item> GetBaseItem(int roomTypeID, int personCount, string useDate)
+        {
+            try
+            {
+                using ItemAccess access = new DataAccessGrpc.Client.ItemAccess(EnvironmentSetting.GrpcChannel);
+                return await access.GetBaseItem(roomTypeID, personCount, useDate);
+            }
+            catch (Exception ex)
+            {
+                OperationLog.Instance.WriteLog($"GetBaseItem:{ex.Message}");
+                return null;
+            }
+        }
+    }
+}

--
Gitblit v1.10.0