using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Configuration; namespace EVCB_OCPP.WSServer { public static class GlobalConfig { public static List<string> ConfigKeys = new List<string>() { "WSPort", "WSSPort", "OCPP20_WSUrl", "OCPP20_WSSUrl", "SecurityProfileLevel", "SecurityPassword" }; public static List<string> DenyModelNames = new List<string>(); public static string UTC_DATETIMEFORMAT = "yyyy-MM-dd'T'HH':'mm':'ss'Z'"; public static string TCC_API_URL = string.Empty; public static string TCC_SALTKEY = string.Empty; public static string OCPP20_WSUrl = string.Empty; public static string OCPP20_WSSUrl = string.Empty; public static int SecurityProfileLevel = 0; public static string SecurityPassword = string.Empty; public static JsonSerializerSettings JSONSERIALIZER_FORMAT = new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore, Formatting = Formatting.None, DateFormatString = UTC_DATETIMEFORMAT }; /// <summary> /// 預設心跳間隔時間 單位:秒 /// </summary> private static int DEFAULT_HEARTBEAT_INTERVAL = 60; /// <summary> ///WS Port /// </summary> private static int WS_Port = 2012; /// <summary> ///WSS Port 1 /// </summary> private static int WSS_Port_1 = 2013; /// <summary> ///WSS Port 2 /// </summary> private static int WSS_Port_2 = 2014; /// <summary> /// Load setting from app.config /// </summary> public static bool LoadAPPConfig() { bool result = false; string key = string.Empty; try { for (int i = 0; i < ConfigKeys.Count; i++) { key = ConfigKeys[i]; switch (key) { case "WSPort":// convert to int type { var value = ConfigurationManager.AppSettings[key]; WS_Port = Convert.ToInt32(value); } break; case "WSSPort": { var value = ConfigurationManager.AppSettings[key].Split(',')[0]; WSS_Port_1 = Convert.ToInt32(ConfigurationManager.AppSettings[key].Split(',')[0]); WSS_Port_2 = Convert.ToInt32(ConfigurationManager.AppSettings[key].Split(',')[1]); } break; case "OCPP20_WSUrl":// convert to int type { var value = ConfigurationManager.AppSettings[key]; OCPP20_WSUrl = value; } break; case "OCPP20_WSSUrl":// convert to int type { var value = ConfigurationManager.AppSettings[key]; OCPP20_WSSUrl = value; } break; case "SecurityProfileLevel": { var value = ConfigurationManager.AppSettings[key]; SecurityProfileLevel = Convert.ToInt32(value); } break; case "SecurityPassword": { var value = ConfigurationManager.AppSettings[key]; SecurityPassword = value; } break; default://convert to string type break; } } result = true; } catch (Exception ex) { Console.WriteLine(key + " Load from APPConfig " + ex.ToString()); } return result; } public static int GetWS_Port() { return WS_Port; } public static int GetWSS_Port_1() { return WSS_Port_1; } public static int GetWSS_Port_2() { return WSS_Port_2; } public static int GetHEARTBEAT_INTERVAL() { return DEFAULT_HEARTBEAT_INTERVAL; } public static readonly int DB_DefaultConnectionTimeout = 60; /// <summary> /// 預設 Null的 DateTime /// </summary> public static DateTime DefaultNullTime = new DateTime(1991, 1, 1); } }