// <?xml version = "1.0" encoding="utf-8" ?> //<Root> // <Group Name = "公用电话" > // <TelePhone Name="火警电话" >119</TelePhone> // <TelePhone Name="报警电话" >110</TelePhone> // </Group> // <Group Name = "校内电话" > // <TelePhone Name="中控室" >89534606</TelePhone> // <TelePhone Name="中控室" >89534606</TelePhone> // </Group> //</Root> #endregion /// <summary> /// 将xml文件解析为对象 /// </summary> /// <param name="xml"></param> /// <returns></returns> public List <EmergencyPhoneCustom> TranXMLToObj(string xml) { try { List <EmergencyPhoneCustom> list = new List <EmergencyPhoneCustom>(); EmergencyPhoneCustom custom = null; XmlDocument myXmlDoc = new XmlDocument(); myXmlDoc.LoadXml(xml); XmlNodeList childNodes = myXmlDoc.SelectNodes("Root/Group"); for (int i = 0; i < childNodes.Count; i++) { custom = new EmergencyPhoneCustom(); custom.phoneList = new List <PhoneGroup>(); PhoneGroup phone = null; custom.groupName = ((XmlElement)childNodes[i]).GetAttribute("Name"); XmlNodeList nodes = childNodes[i].SelectNodes("TelePhone"); for (int j = 0; j < nodes.Count; j++) { phone = new PhoneGroup(); phone.phoneName = ((XmlElement)nodes[j]).GetAttribute("Name"); phone.phoneNum = nodes[j].InnerText; custom.phoneList.Add(phone); } list.Add(custom); } return(list); } catch (Exception ex) { throw ex; } }
/// <summary> /// Загрузить телефонный справочник из файла /// </summary> public bool Load(string fileName, out string errMsg) { try { // очистка справочника PhoneGroups.Clear(); // загрузка справочника XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(fileName); XmlNodeList phoneGroupNodes = xmlDoc.DocumentElement.SelectNodes("PhoneGroup"); foreach (XmlElement phoneGroupElem in phoneGroupNodes) { PhoneGroup phoneGroup = new PhoneGroup(phoneGroupElem.GetAttribute("name")); if (!PhoneGroups.ContainsKey(phoneGroup.Name)) { PhoneGroups.Add(phoneGroup.Name, phoneGroup); } XmlNodeList phoneNumberNodes = phoneGroupElem.SelectNodes("PhoneNumber"); HashSet <string> phoneNumberSet = new HashSet <string>(); // контроль уникальности номеров в группе foreach (XmlElement phoneNumberElem in phoneNumberNodes) { PhoneNumber phoneNumber = new PhoneNumber(phoneNumberElem.GetAttribute("number"), phoneNumberElem.GetAttribute("name")); if (!phoneNumberSet.Contains(phoneNumber.Number)) { phoneGroup.PhoneNumbers.Add(phoneNumber); phoneNumberSet.Add(phoneNumber.Number); } } phoneGroup.PhoneNumbers.Sort(PhoneNumber.ByNameComparer); } errMsg = ""; return(true); } catch (Exception ex) { errMsg = CommPhrases.LoadKpDllSettingsError + ":" + Environment.NewLine + ex.Message; return(false); } }
/// <summary> /// Определить, равна ли группа телефонных номеров заданной группе /// </summary> public bool Equals(PhoneGroup other) { return(other != null && string.Equals(Name, other.Name, StringComparison.OrdinalIgnoreCase)); }
/// <summary> /// 新增电话配置 /// </summary> /// <param name="regionId"></param> /// <param name="groupName"></param> /// <param name="telePhoneName"></param> /// <param name="telePhoneNum"></param> /// <returns></returns> public EventRet AddTelePhoneByGroupName(int regionId, string groupName, string telePhoneName, string telePhoneNum) { try { int configId = -1; EventRet ret = new EventRet(); List <EmergencyPhoneCustom> list = GetEmergencyConfig(regionId, out configId); if (list != null && list.Count > 0) { var entity = list.Where(n => n.groupName == groupName).FirstOrDefault(); if (entity != null) { if (entity.phoneList != null && entity.phoneList.Count > 0) { #region 新增加判断 var phoneEntity = entity.phoneList.Where(n => n.phoneName == telePhoneName).FirstOrDefault(); if (phoneEntity == null) { PhoneGroup group = new PhoneGroup(); group.phoneName = telePhoneName; group.phoneNum = telePhoneNum; list.Where(n => n.groupName == groupName).FirstOrDefault().phoneList.Add(group); string xml = TranObjToXml(list); int res = UpdateEmergencyConfig(configId, regionId, xml); if (res > 0) { ret.message = "新增电话名称成功"; ret.state = 0; } else { ret.message = "新增电话名称失败"; ret.state = 1; } } else { ret.message = "电话名称重复"; ret.state = 1; } #endregion } else { List <PhoneGroup> phoneList = new List <PhoneGroup>(); PhoneGroup group = new PhoneGroup(); group.phoneName = telePhoneName; group.phoneNum = telePhoneNum; phoneList.Add(group); list.Where(n => n.groupName == groupName).FirstOrDefault().phoneList = phoneList; string xml = TranObjToXml(list); int res = UpdateEmergencyConfig(configId, regionId, xml); if (res > 0) { ret.message = "新增电话成功"; ret.state = 0; } else { ret.message = "新增电话失败"; ret.state = 1; } } } else { ret.message = "未找到该园区应急电话组为" + groupName + "的配置"; ret.state = 1; } } else { ret.message = "未找到该园区应急电话配置"; ret.state = 1; } return(ret); } catch (Exception ex) { throw ex; } }