using Newtonsoft.Json.Linq; using Newtonsoft.Json; using WcsMain.Common; using SqlSugar; using WcsMain.AppEntity.SystemData; namespace WcsMain.StartAction; /// /// WCS 程序启动前加载运行数据 ---- 链式调用,返回错误信息 /// public class LoadingRunningData { /// /// 错误信息 /// private static string _errMsg = string.Empty; /// /// 是否是开发环境 /// private static bool _isDevelopment = true; /// /// 加载系统运行数据数据 /// /// public static void Loading(bool isDevelopment) { _isDevelopment = isDevelopment;// 将开发环境暴露到此类全局 LoadingAppSetting(); // 加载 Appsettings.json 文件里的设置项 LoadingWcsDataBase(); // 加载 Wcs 数据库连接字符串 // 加载数据库中的 } /// /// 返回加载结果 /// /// public static string? GetResult() => _errMsg; /// /// 加载 Appsettings.json 文件里的设置项 /// public static void LoadingAppSetting() { if (!string.IsNullOrEmpty(_errMsg)) return; ConsoleLog.Info("正在加载配置文件..."); string setStr; try { using (StreamReader sr = new("appsettings.json")) { setStr = sr.ReadToEnd(); } JObject jsonObj = JObject.Parse(setStr); JObject? settinsOnj = (JObject?)jsonObj["Settings"]; if (settinsOnj == default) { _errMsg = "加载系统设置文件失败,请检查是否存在 Settings 键"; return; } CommonData.Settings = JsonConvert.DeserializeObject(settinsOnj.ToString()); } catch(Exception ex) { _ = ex; _errMsg = "加载系统设置文件失败,请检查是否存在 appsettings.json 文件"; } } /// /// 加载数据库文件 /// private static void LoadingWcsDataBase() { if (!string.IsNullOrEmpty(_errMsg)) return; ConsoleLog.Info("正在加载数据库配置..."); string wcsDataBaseConnectString; if (_isDevelopment) { if(string.IsNullOrEmpty(CommonData.Settings.DBMysqlLocal)) { _errMsg = "调试环境下加载WCS数据库连接字符串失败"; return; } wcsDataBaseConnectString = CommonData.Settings.DBMysqlLocal; } else { if (string.IsNullOrEmpty(CommonData.Settings.DBMysql)) { _errMsg = "运行环境下加载WCS数据库连接字符串失败"; return; } wcsDataBaseConnectString = CommonData.Settings.DBMysql; } CommonTool.DbServe = new SqlSugarScope(new ConnectionConfig() { IsAutoCloseConnection = true, ConfigId = "0", DbType = DbType.MySql, ConnectionString = wcsDataBaseConnectString, }); } }