static public Text Parse(XmlNode cXmlNode) { Text cRetVal = new Text(); XmlNode cNodeFont = cXmlNode.NodeGet("font"); cRetVal.cFont = new System.Drawing.Font(cNodeFont.AttributeValueGet("name"), cNodeFont.AttributeGet<int>("size"), cNodeFont.AttributeGet<System.Drawing.FontStyle>("style")); cRetVal.nTopOffset = cNodeFont.AttributeGet<short>("offset", false); if (cRetVal.nTopOffset == short.MaxValue) cRetVal.nTopOffset = 0; cXmlNode = cNodeFont.NodeGet("color"); cRetVal.stColor = System.Drawing.Color.FromArgb(cXmlNode.AttributeGet<byte>("alpha"), cXmlNode.AttributeGet<byte>("red"), cXmlNode.AttributeGet<byte>("green"), cXmlNode.AttributeGet<byte>("blue")); if (null != (cXmlNode = cNodeFont.NodeGet("border", false))) { cRetVal.nBorderWidth = cXmlNode.AttributeValueGet("width").ToFloat(); cXmlNode = cXmlNode.NodeGet("color"); cRetVal.stColorBorder = System.Drawing.Color.FromArgb(cXmlNode.AttributeGet<byte>("alpha"), cXmlNode.AttributeGet<byte>("red"), cXmlNode.AttributeGet<byte>("green"), cXmlNode.AttributeGet<byte>("blue")); } return cRetVal; }
override protected void LoadXML(XmlNode cXmlNode) { if (null == cXmlNode) return; try { _eLevel = cXmlNode.AttributeGet<Level>("level"); } catch { _eLevel = Level.notice; } XmlNode cXmlNodeChild = cXmlNode.NodeGet("file", false); if (null != cXmlNodeChild) { _cFile = new File(); _cFile.sPath = cXmlNodeChild.AttributeValueGet("path", false); if (null != _cFile.sPath && !SIO.Path.IsPathRooted(_cFile.sPath)) _cFile.sPath = SIO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, _cFile.sPath); _cFile.sFilename = cXmlNodeChild.AttributeValueGet("name", false); _cFile.bDate = cXmlNodeChild.AttributeGet<bool>("date", false); _cFile.bPID = cXmlNodeChild.AttributeGet<bool>("pid", false); } cXmlNodeChild = cXmlNode.NodeGet("mail", false); _ahMailTargets = null; List<Regex> aExcludes = new List<Regex>(); if (null != cXmlNodeChild) { if (null == (_sMailSubjectPrefix = cXmlNodeChild.AttributeValueGet("subject", false))) throw new Exception("не указан префикс темы сообщения электронной почты [" + cXmlNodeChild.Name + "][subject]"); //TODO LANG _sMailSubjectPrefix = "[" + _sMailSubjectPrefix + "]"; if (null == (_sMailSource = cXmlNodeChild.AttributeValueGet("source", false))) throw new Exception("не указан адрес отправителя сообщения электронной почты [" + cXmlNodeChild.Name + "][source]"); //TODO LANG if (null == (_sMailServer = cXmlNodeChild.AttributeValueGet("server", false))) throw new Exception("не указан сервер электронной почты [" + cXmlNodeChild.Name + "][server]"); //TODO LANG if (null == (_sMailPassword = cXmlNodeChild.AttributeValueGet("password", false))) throw new Exception("не указан пароль сервера электронной почты [" + cXmlNodeChild.Name + "][password]"); //TODO LANG XmlNode[] aXmlNodes = cXmlNodeChild.NodesGet("targets/target", false); if (null == aXmlNodes) throw new Exception("не указаны адресаты электронной почты [" + cXmlNodeChild.Name + "][targets]"); //TODO LANG _ahMailTargets = new Dictionary<Level, string>(); Level eLevel; foreach (XmlNode cNode in aXmlNodes) { if (null != cNode.Attributes["level"]) { try { eLevel = cNode.AttributeGet<Level>("level"); } catch { throw new Exception("указан некорректный уровень для списка адресатов [" + cNode.Name + "]"); //TODO LANG } if (_ahMailTargets.ContainsKey(eLevel)) throw new Exception("указано несколько списков адресатов [" + eLevel + "][" + cNode.Name + "]"); //TODO LANG _ahMailTargets.Add(eLevel, cNode.InnerText); } } if (null != (aXmlNodes = cXmlNodeChild.NodesGet("excludes/pattern", false))) { foreach (XmlNode cNode in aXmlNodes) { if (!cNode.InnerXml.IsNullOrEmpty()) aExcludes.Add(new Regex(cNode.InnerXml, RegexOptions.IgnoreCase | RegexOptions.Singleline)); } } } _aExcludes = aExcludes.ToArray(); }
override protected void LoadXML(XmlNode cXmlNode) { if (null == cXmlNode || _bInitialized) return; _cServerIP = cXmlNode.AttributeGet<IPAddress>("server"); }
override protected void LoadXML(XmlNode cXmlNode) { if (null == cXmlNode || _bInitialized) return; _nPort = cXmlNode.AttributeGet<int>("port"); }