using System; using System.IO; using System.Xml; namespace WmTransIp{ /// /// This object represents a domain name whois information table /// /// use this object to transport the fields from and to TransIP /// public class DomainWhois{ protected string ownerFirstDomain; protected string ownerName; protected string ownerAddress; protected string ownerPostcode; protected string ownerPlace; protected string ownerCountry; protected string ownerType; protected string ownerKvK; protected string adminName; protected string adminContactName; protected string adminContactInitials; protected string adminContactGender; protected string adminAddress; protected string adminPostcode; protected string adminPlace; protected string adminCountry; protected string adminPhone; protected string adminFax; protected string adminEmail; protected string techName; protected string techContactName; protected string techContactInitials; protected string techContactGender; protected string techAddress; protected string techPostcode; protected string techPlace; protected string techCountry; protected string techPhone; protected string techFax; protected string techEmail; protected bool trade; public DomainWhois(){} /// /// This function writes a XML representation of this object to a given Xml Text writer /// make sure that the writer is setup correctly, no further checking is performed. /// /// true if you want the trade attribute to be written to xml /// the fully functional writer object public void writeWhoisToXml(XmlTextWriter writer,bool isTransfer){ writer.WriteStartElement("whois"); writer.WriteElementString("ownerFirstDomain",OwnerFirstDomain); writer.WriteElementString("ownerName",OwnerName); writer.WriteElementString("ownerAddress",OwnerAddress); writer.WriteElementString("ownerPostcode",OwnerPostcode); writer.WriteElementString("ownerPlace",OwnerPlace); writer.WriteElementString("ownerCountry",OwnerCountry); writer.WriteElementString("ownerType",OwnerType); writer.WriteElementString("ownerKvk",OwnerKvk); writer.WriteElementString("adminName",AdminName); writer.WriteElementString("adminContactName",AdminContactName); writer.WriteElementString("adminContactInitials",AdminContactInitials); writer.WriteElementString("adminContactGender",AdminContactGender); writer.WriteElementString("adminAddress",AdminAddress); writer.WriteElementString("adminPostcode",AdminPostcode); writer.WriteElementString("adminPlace",AdminPlace); writer.WriteElementString("adminCountry",AdminCountry); writer.WriteElementString("adminPhone",AdminPhone); writer.WriteElementString("adminFax",AdminFax); writer.WriteElementString("adminEmail",AdminEmail); writer.WriteElementString("techName",TechName); writer.WriteElementString("techContactName",TechContactName); writer.WriteElementString("techContactInitials",TechContactInitials); writer.WriteElementString("techContactGender",TechContactGender); writer.WriteElementString("techAddress",TechAddress); writer.WriteElementString("techPostcode",TechPostcode); writer.WriteElementString("techPlace",TechPlace); writer.WriteElementString("techCountry",TechCountry); writer.WriteElementString("techPhone",TechPhone); writer.WriteElementString("techFax",TechFax); writer.WriteElementString("techEmail",TechEmail); if(isTransfer){ if(Trade){ writer.WriteElementString("trade","yes"); }else{ writer.WriteElementString("trade","no"); } } writer.WriteEndElement(); // end of whois } /// /// Will read the whois object from the XmlTextReader; /// since the XmlTextReader is a forward-only reader, make sure that you pass this reader /// to this object when the whois element is reached. This function will return if the whois end element was found. /// /// public void readWhoisFromXml(XmlTextReader reader){ while(reader.Read()){ reader.MoveToElement(); if(reader.NodeType == XmlNodeType.Element){ if(reader.Name.Equals("ownerFirstDomain")){ OwnerFirstDomain = reader.ReadString(); } if(reader.Name.Equals("ownerName")){ OwnerName = reader.ReadString(); } if(reader.Name.Equals("ownerAddress")){ OwnerAddress = reader.ReadString(); } if(reader.Name.Equals("ownerPostcode")){ OwnerPostcode = reader.ReadString(); } if(reader.Name.Equals("ownerPlace")){ OwnerPlace = reader.ReadString(); } if(reader.Name.Equals("ownerCountry")){ OwnerCountry = reader.ReadString(); } if(reader.Name.Equals("ownerType")){ OwnerType = reader.ReadString(); } if(reader.Name.Equals("ownerKvK")){ OwnerKvk = reader.ReadString(); } if(reader.Name.Equals("adminName")){ AdminName = reader.ReadString(); } if(reader.Name.Equals("adminContactName")){ AdminContactName = reader.ReadString(); } if(reader.Name.Equals("adminContactInitials")){ AdminContactInitials = reader.ReadString(); } if(reader.Name.Equals("adminContactGender")){ AdminContactGender = reader.ReadString(); } if(reader.Name.Equals("adminAddress")){ AdminAddress = reader.ReadString(); } if(reader.Name.Equals("adminPostcode")){ AdminPostcode = reader.ReadString(); } if(reader.Name.Equals("adminPlace")){ AdminPlace = reader.ReadString(); } if(reader.Name.Equals("adminCountry")){ AdminCountry = reader.ReadString(); } if(reader.Name.Equals("adminPhone")){ AdminPhone = reader.ReadString(); } if(reader.Name.Equals("adminFax")){ AdminFax = reader.ReadString(); } if(reader.Name.Equals("adminEmail")){ AdminEmail = reader.ReadString(); } if(reader.Name.Equals("techName")){ TechName = reader.ReadString(); } if(reader.Name.Equals("techContactName")){ TechContactName = reader.ReadString(); } if(reader.Name.Equals("techContactInitials")){ TechContactInitials = reader.ReadString(); } if(reader.Name.Equals("techContactGender")){ TechContactGender = reader.ReadString(); } if(reader.Name.Equals("techAddress")){ TechAddress = reader.ReadString(); } if(reader.Name.Equals("techPostcode")){ TechPostcode = reader.ReadString(); } if(reader.Name.Equals("techPlace")){ TechPlace = reader.ReadString(); } if(reader.Name.Equals("techCountry")){ TechCountry = reader.ReadString(); } if(reader.Name.Equals("techPhone")){ TechPhone = reader.ReadString(); } if(reader.Name.Equals("techFax")){ TechFax = reader.ReadString(); } if(reader.Name.Equals("techEmail")){ TechEmail = reader.ReadString(); } if(reader.Name.Equals("trade")){ string tradeValue = reader.ReadString(); Trade = tradeValue.ToLower().Equals("yes"); } }else if(reader.NodeType == XmlNodeType.EndElement && reader.Name.Equals("whois")){ // 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; } } } /// /// First domainname of the owner, required for .NL domainregistration /// public string OwnerFirstDomain{ get { return ownerFirstDomain; } set { ownerFirstDomain = value; } } /// /// Name of the owner /// public string OwnerName{ get { return ownerName; } set { ownerName = value; } } public string OwnerAddress{ get { return ownerAddress; } set { ownerAddress = value; } } public string OwnerPostcode{ get { return ownerPostcode; } set { ownerPostcode = value; } } public string OwnerPlace{ get { return ownerPlace; } set { ownerPlace = value; } } public string OwnerCountry{ get { return ownerCountry; } set { ownerCountry = value; } } /// /// Business type registration /// public string OwnerType{ get { return ownerType; } set { ownerType = value; } } public string OwnerKvk{ get { return ownerKvK; } set { ownerKvK = value; } } public string AdminName{ get { return adminName; } set { adminName = value; } } public string AdminContactName{ get { return adminContactName; } set { adminContactName = value; } } public string AdminContactInitials{ get { return adminContactInitials; } set { adminContactInitials = value; } } public string AdminContactGender{ get { return adminContactGender; } set { adminContactGender = value; } } public string AdminAddress{ get { return adminAddress; } set { adminAddress = value; } } public string AdminPostcode{ get { return adminPostcode; } set { adminPostcode = value; } } public string AdminPlace{ get { return adminPlace; } set { adminPlace = value; } } public string AdminCountry{ get { return adminCountry;} set { adminCountry = value; } } public string AdminPhone{ get { return adminPhone; } set { adminPhone = value; } } public string AdminFax{ get { return adminFax; } set { adminFax = value; } } public string AdminEmail{ get { return adminEmail; } set { adminEmail = value; } } public string TechName{ get { return techName; } set { techName = value; } } public string TechContactName{ get { return techContactName; } set { techContactName = value; } } public string TechContactInitials{ get { return techContactInitials; } set { techContactInitials = value; } } public string TechContactGender{ get { return techContactGender; } set { techContactGender = value; } } public string TechAddress{ get { return techAddress; } set { techAddress = value; } } public string TechPostcode{ get { return techPostcode; } set { techPostcode = value; } } public string TechPlace{ get { return techPlace; } set { techPlace = value; } } public string TechCountry{ get { return techCountry; } set { techCountry = value; } } public string TechPhone{ get { return techPhone; } set { techPhone = value; } } public string TechFax{ get { return techFax; } set { techFax = value; } } public string TechEmail { get { return techEmail; } set { techEmail = value; } } /// /// Set this to true for .EU and .BE domains if you plan /// to transfer the domain AND change owner in one proces. /// public bool Trade{ get { return trade; } set { trade = value; } } } }