示例#1
0
 public void Visit(ParamAssign param)
 {
     if (!string.IsNullOrWhiteSpace(param.Comment))
     {
         _xml.WriteComment(param.Comment);
     }
     _xml.WriteStartElement("Param");
     if (!string.IsNullOrWhiteSpace(param.Name))
     {
         _xml.WriteAttributeString("name", param.Name);
     }
     if (!string.IsNullOrWhiteSpace(param.Select))
     {
         _xml.WriteAttributeString("select", param.Select);
     }
     if (string.IsNullOrEmpty(param.Value))
     {
         if (!string.IsNullOrEmpty(param.ActualValue))
         {
             _xml.WriteComment(param.ActualValue);
         }
     }
     else
     {
         WriteFormatted(param.Value, param.IsXml, _xml);
     }
     _xml.WriteEndElement();
 }
示例#2
0
        private static ICommand ReadCommand(XmlReader reader, string comment, string sessionId)
        {
            switch (reader.LocalName)
            {
            case "Login":
                var login = new Login()
                {
                    Comment  = comment,
                    Database = reader.GetAttribute("database"),
                    Url      = reader.GetAttribute("url"),
                    UserName = reader.GetAttribute("username"),
                }
                .SetType(reader.GetAttribute("type"))
                .SetPassword(reader.GetAttribute("password"), sessionId);
                reader.Read();
                return(login);

            case "Logout":
                var logout = new Logout()
                {
                    Comment = comment
                };
                reader.Read();
                return(logout);

            case "Delay":
                var delay = new Delay()
                {
                    BySeconds = reader.GetAttribute("by"),
                    From      = reader.GetAttribute("from"),
                    Comment   = comment
                };
                reader.Read();
                return(delay);

            case "sql":
            case "SQL":
            case "Item":
            case "AML":
            case "GetNextSequence":
                return(new Query()
                {
                    Comment = comment,
                    Text = reader.ReadOuterXml()
                });

            case "Param":
                bool isXml;
                var  result = new ParamAssign()
                {
                    Comment = comment,
                    Name    = reader.GetAttribute("name"),
                    Select  = reader.GetAttribute("select"),
                    Value   = ProcessXmlValue(reader.ReadInnerXml(), out isXml)
                };
                result.IsXml = isXml;
                return(result);
            }
            return(null);
        }