Beispiel #1
0
                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;
                }
Beispiel #2
0
            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();
            }
Beispiel #3
0
		override protected void LoadXML(XmlNode cXmlNode)
		{
            if (null == cXmlNode || _bInitialized)
				return;
			_cServerIP = cXmlNode.AttributeGet<IPAddress>("server");
		}
Beispiel #4
0
		override protected void LoadXML(XmlNode cXmlNode)
		{
            if (null == cXmlNode || _bInitialized)
				return;
            _nPort = cXmlNode.AttributeGet<int>("port");
		}