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; }
}
}
}