/// <summary> /// Загрузить настройки приложения из файла /// </summary> public bool Load(string fileName, out string errMsg) { // установка значений по умолчанию SetToDefault(); // загрузка настроек try { if (!File.Exists(fileName)) { throw new FileNotFoundException(string.Format(CommonPhrases.NamedFileNotFound, fileName)); } XmlDocument xmlDoc = new XmlDocument(); // обрабатываемый XML-документ xmlDoc.Load(fileName); XmlElement rootElem = xmlDoc.DocumentElement; // загрузка общих параметров XmlNode paramsNode = rootElem.SelectSingleNode("CommonParams"); if (paramsNode != null) { XmlNodeList paramNodeList = paramsNode.SelectNodes("Param"); foreach (XmlElement paramElem in paramNodeList) { string name = paramElem.GetAttribute("name").Trim(); string nameL = name.ToLowerInvariant(); string val = paramElem.GetAttribute("value"); try { if (nameL == "tcpport") { TcpPort = int.Parse(val); } else if (nameL == "usead") { UseAD = bool.Parse(val); } else if (nameL == "ldappath") { LdapPath = val; } else if (nameL == "detailedlog") { DetailedLog = bool.Parse(val); } } catch { throw new Exception(string.Format(CommonPhrases.IncorrectXmlParamVal, name)); } } } // загрузка директорий paramsNode = rootElem.SelectSingleNode("Directories"); if (paramsNode != null) { XmlNodeList paramNodeList = paramsNode.SelectNodes("Param"); foreach (XmlElement paramElem in paramNodeList) { string nameL = paramElem.GetAttribute("name").Trim().ToLowerInvariant(); string val = ScadaUtils.NormalDir(paramElem.GetAttribute("value")); if (nameL == "basedatdir") { BaseDATDir = val; } else if (nameL == "itfdir") { ItfDir = val; } else if (nameL == "arcdir") { ArcDir = val; } else if (nameL == "arccopydir") { ArcCopyDir = val; } } } // загрузка параметров записи данных paramsNode = rootElem.SelectSingleNode("SaveParams"); if (paramsNode != null) { XmlNodeList paramNodeList = paramsNode.SelectNodes("Param"); foreach (XmlElement paramElem in paramNodeList) { string name = paramElem.GetAttribute("name").Trim(); string nameL = name.ToLowerInvariant(); string val = paramElem.GetAttribute("value"); try { if (nameL == "writecurper") { WriteCurPer = int.Parse(val); } else if (nameL == "inactunreltime") { InactUnrelTime = int.Parse(val); } else if (nameL == "writecur") { WriteCur = bool.Parse(val); } else if (nameL == "writecurcopy") { WriteCurCopy = bool.Parse(val); } else if (nameL == "writeminper") { WriteMinPer = int.Parse(val); } else if (nameL == "storeminper") { StoreMinPer = int.Parse(val); } else if (nameL == "writemin") { WriteMin = bool.Parse(val); } else if (nameL == "writemincopy") { WriteMinCopy = bool.Parse(val); } else if (nameL == "writehrper") { WriteHrPer = int.Parse(val) * 60; } else if (nameL == "storehrper") { StoreHrPer = int.Parse(val); } else if (nameL == "writehr") { WriteHr = bool.Parse(val); } else if (nameL == "writehrcopy") { WriteHrCopy = bool.Parse(val); } else if (nameL == "storeevper") { StoreEvPer = int.Parse(val); } else if (nameL == "writeev") { WriteEv = bool.Parse(val); } else if (nameL == "writeevcopy") { WriteEvCopy = bool.Parse(val); } } catch { throw new Exception(string.Format(CommonPhrases.IncorrectXmlParamVal, name)); } } } // загрузка имён файлов модулей XmlNode modulesNode = rootElem.SelectSingleNode("Modules"); if (modulesNode != null) { XmlNodeList moduleNodeList = modulesNode.SelectNodes("Module"); foreach (XmlElement moduleElem in moduleNodeList) { ModuleFileNames.Add(moduleElem.GetAttribute("fileName")); } } errMsg = ""; return(true); } catch (Exception ex) { errMsg = CommonPhrases.LoadAppSettingsError + ":" + Environment.NewLine + ex.Message; return(false); } }
/// <summary> /// Load application settings from file /// </summary> public bool Load(string fileName, out string errMsg) { // setting default values SetToDefault(); // loading settings try { if (!File.Exists(fileName)) { throw new FileNotFoundException(string.Format(CommonPhrases.NamedFileNotFound, fileName)); } var xmlDoc = new XmlDocument(); // processed XML document xmlDoc.Load(fileName); XmlElement rootElem = xmlDoc.DocumentElement; // general parameter loading XmlNode paramsNode = rootElem.SelectSingleNode("CommonParams"); if (paramsNode != null) { XmlNodeList paramNodeList = paramsNode.SelectNodes("Param"); foreach (XmlElement paramElem in paramNodeList) { string name = paramElem.GetAttribute("name").Trim(); string nameL = name.ToLowerInvariant(); string val = paramElem.GetAttribute("value"); try { if (nameL == "tcpport") { TcpPort = int.Parse(val); } else if (nameL == "usead") { UseAD = bool.Parse(val); } else if (nameL == "ldappath") { LdapPath = val; } else if (nameL == "detailedlog") { DetailedLog = bool.Parse(val); } } catch { throw new Exception(string.Format(CommonPhrases.IncorrectXmlParamVal, name)); } } } // loading directories paramsNode = rootElem.SelectSingleNode("Directories"); if (paramsNode != null) { XmlNodeList paramNodeList = paramsNode.SelectNodes("Param"); foreach (XmlElement paramElem in paramNodeList) { string nameL = paramElem.GetAttribute("name").Trim().ToLowerInvariant(); string val = ScadaUtils.NormalDir(paramElem.GetAttribute("value")); if (nameL == "basedatdir") { BaseDATDir = val; } else if (nameL == "itfdir") { ItfDir = val; } else if (nameL == "arcdir") { ArcDir = val; } else if (nameL == "arccopydir") { ArcCopyDir = val; } } } // loading data logging parameters paramsNode = rootElem.SelectSingleNode("SaveParams"); if (paramsNode != null) { XmlNodeList paramNodeList = paramsNode.SelectNodes("Param"); foreach (XmlElement paramElem in paramNodeList) { string name = paramElem.GetAttribute("name").Trim(); string nameL = name.ToLowerInvariant(); string val = paramElem.GetAttribute("value"); try { if (nameL == "writecurper") { WriteCurPer = int.Parse(val); } else if (nameL == "inactunreltime") { InactUnrelTime = int.Parse(val); } else if (nameL == "writecur") { WriteCur = bool.Parse(val); } else if (nameL == "writecurcopy") { WriteCurCopy = bool.Parse(val); } else if (nameL == "writeminper") { WriteMinPer = int.Parse(val); } else if (nameL == "storeminper") { StoreMinPer = int.Parse(val); } else if (nameL == "writemin") { WriteMin = bool.Parse(val); } else if (nameL == "writemincopy") { WriteMinCopy = bool.Parse(val); } else if (nameL == "writehrper") { WriteHrPer = int.Parse(val) * 60; } else if (nameL == "storehrper") { StoreHrPer = int.Parse(val); } else if (nameL == "writehr") { WriteHr = bool.Parse(val); } else if (nameL == "writehrcopy") { WriteHrCopy = bool.Parse(val); } else if (nameL == "storeevper") { StoreEvPer = int.Parse(val); } else if (nameL == "writeev") { WriteEv = bool.Parse(val); } else if (nameL == "writeevcopy") { WriteEvCopy = bool.Parse(val); } } catch { throw new Exception(string.Format(CommonPhrases.IncorrectXmlParamVal, name)); } } } // loading module file names XmlNode modulesNode = rootElem.SelectSingleNode("Modules"); if (modulesNode != null) { XmlNodeList moduleNodeList = modulesNode.SelectNodes("Module"); foreach (XmlElement moduleElem in moduleNodeList) { ModuleFileNames.Add(moduleElem.GetAttribute("fileName")); } } errMsg = ""; return(true); } catch (Exception ex) { errMsg = CommonPhrases.LoadAppSettingsError + ":" + Environment.NewLine + ex.Message; return(false); } }