using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Configuration; namespace EVCB_OCPP.WSServer { public static class GlobalConfig { public static List ConfigKeys = new List() { "WSPort", "WSSPort", "OCPP20_WSUrl", "OCPP20_WSSUrl", "SecurityProfileLevel", "SecurityPassword" }; public static List DenyModelNames = new List(); 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 }; /// /// 預設心跳間隔時間 單位:秒 /// private static int DEFAULT_HEARTBEAT_INTERVAL = 60; /// ///WS Port /// private static int WS_Port = 2012; /// ///WSS Port /// private static List WSS_Ports = null; /// /// Load setting from app.config /// 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 = 0; Int32.TryParse(value, out WS_Port); } break; case "WSSPort": { var ports = ConfigurationManager.AppSettings[key].Split(','); WSS_Ports = new List(); foreach(var port in ports) { WSS_Ports.Add(Convert.ToInt32(port)); } } 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 List GetWSS_Ports() { return WSS_Ports; } public static int GetHEARTBEAT_INTERVAL() { return DEFAULT_HEARTBEAT_INTERVAL; } public static readonly int DB_DefaultConnectionTimeout = 60; /// /// 預設 Null的 DateTime /// public static DateTime DefaultNullTime = new DateTime(1991, 1, 1); } }