using Newtonsoft.Json; namespace JiLinApp.Docking.Alarm; public class AlarmCodeHelper { #region Fields private static readonly Dictionary AlarmCodeDict; private static readonly List LevelList; private static readonly List TypeList; #endregion Fields static AlarmCodeHelper() { using StreamReader r = new(Path.Combine("config", "alarmcode.json")); string jsonStr = r.ReadToEnd(); List list = JsonConvert.DeserializeObject>(jsonStr) ?? new(); AlarmCodeDict = list.ToDictionary(item => item.Id, item => item); LevelList = list.GroupBy(item => item.Level).Select(it => it.First().Level).ToList(); TypeList = list.GroupBy(item => item.Type).Select(it => it.First().Type).ToList(); } public static void Init() { } public static AlarmCode Get(string id) { return AlarmCodeDict[id]; } public static bool TryGet(string id, out AlarmCode alarmCode) { bool flag = AlarmCodeDict.TryGetValue(id, out AlarmCode? temp); alarmCode = temp ?? new(); return flag; } }