using System; using System.IO; using System.Xml; namespace WmTransIp{ /// /// This object is a representation of the /// 'nameservers' section in serveral XML requests. /// /// please note that the 'nsXaddr' are only used in 'whois' lookup /// request, not in register or transfer request /// public class DomainNameservers{ protected string ns1; protected string ns1addr; protected string ns2; protected string ns2addr; protected string ns3; protected string ns3addr; protected string transipAutoIp; public DomainNameservers(){} public void writeDomainNameserversToXml(XmlTextWriter writer, bool writeNsAddrAttributes, bool writeTransipAutoIp){ writer.WriteStartElement("nameservers"); writer.WriteElementString("ns1",Ns1); if(writeNsAddrAttributes){ writer.WriteElementString("ns1addr",Ns1Addr); } writer.WriteElementString("ns2",Ns2); if(writeNsAddrAttributes){ writer.WriteElementString("ns2addr",Ns2Addr); } writer.WriteElementString("ns3",Ns3); if(writeNsAddrAttributes){ writer.WriteElementString("ns3addr",Ns3Addr); } if(writeTransipAutoIp){ writer.WriteElementString("transipAutoIP",transipAutoIp); } writer.WriteEndElement(); // end of nameservers; } public void readDomainNameserversFromXml(XmlTextReader reader){ while(reader.Read()){ reader.MoveToElement(); if(reader.NodeType == XmlNodeType.Element){ if(reader.Name.Equals("ns1")){ Ns1 = reader.ReadString(); } if(reader.Name.Equals("ns2")){ Ns2 = reader.ReadString(); } if(reader.Name.Equals("ns3")){ Ns3 = reader.ReadString(); } if(reader.Name.Equals("ns1addr")){ Ns1Addr = reader.ReadString(); } if(reader.Name.Equals("ns2addr")){ Ns2Addr = reader.ReadString(); } if(reader.Name.Equals("ns3addr")){ Ns3Addr = reader.ReadString(); } if(reader.Name.Equals("transipAutoIP")){ TransipAutoIp = reader.ReadString(); } }else if(reader.NodeType == XmlNodeType.EndElement && reader.Name.Equals("nameservers")){ // if the end element of whois was found, skip it and return. Leave the 'commanding' class // the rest to do (for instance, reading history elements) break; } } } public string Ns1{ get { return ns1; } set { ns1 = value; } } public string Ns1Addr{ get { return ns1addr; } set { ns1addr = value; } } public string Ns2{ get { return ns2; } set { ns2 = value; } } public string Ns2Addr{ get { return ns2addr; } set { ns2addr = value; } } public string Ns3{ get { return ns3; } set { ns3 = value; } } public string Ns3Addr{ get { return ns3addr; } set { ns3addr = value; } } public string TransipAutoIp{ get { return transipAutoIp; } set { transipAutoIp = value; } } } }