/// <summary> /// 创建一个新的联系人对象。 /// </summary> /// <param name="containerDN">表示联系人的容器DN。</param> /// <param name="commonName">表示联系人的公共名称。</param> /// <returns>返回一个新的联系人对象。</returns> public DomainContact CreateNewContact(string containerDN, string commonName) { try { if (string.IsNullOrEmpty(containerDN.Trim())) { throw new Exception("“containerDN”属性不能为空"); } if (string.IsNullOrEmpty(commonName.Trim())) { throw new Exception("“commonName”属性不能为空"); } string contactDN = "CN=" + commonName + "," + containerDN; using (DirectoryEntry container = GetDirectoryEntry(containerDN)) { if (ExistDirectoryEntryByDN(contactDN)) { throw new Exception("已存在公共名称为“" + commonName + "”的对象。"); } container.Children.Add("CN=" + commonName, "contact").CommitChanges(); DomainContact domainContact = GetContact(contactDN); return(domainContact); } } catch { return(null); } }
public void ToDtAssoc() { var contact = new DomainContact { FirstName = "Susan", LastName = "Miller", Address1 = "518 8th Ave", Address2 = "APT 10A", City = "San Francisco", State = "CA", Country = "US", PostalCode = "94104", Email = "*****@*****.**", Phone = "+1.5555555555" }; var expected = @"<dt_assoc> <item key=""first_name"">Susan</item> <item key=""last_name"">Miller</item> <item key=""phone"">+1.5555555555</item> <item key=""email"">[email protected]</item> <item key=""address1"">518 8th Ave</item> <item key=""address2"">APT 10A</item> <item key=""city"">San Francisco</item> <item key=""state"">CA</item> <item key=""country"">US</item> <item key=""postal_code"">94104</item> </dt_assoc>"; var result = Util.ToDtAssoc(contact.GetParameters()); Assert.Equal(expected, result.ToString()); }
private void AddCustomerContacts(DomainContacts contacts) { if (contacts != null) { foreach (string key in contacts.Keys) { DomainContact contact = contacts[key]; string contactKey = key; if (key == "Billing") { contactKey = "AuxBilling"; } AddParam(contactKey + "EmailAddress", contact["Email"]); AddParam(contactKey + "Fax", contact["Fax"]); AddParam(contactKey + "Phone", contact["Phone"]); AddParam(contactKey + "Country", contact["Country"]); AddParam(contactKey + "PostalCode", contact["Zip"]); // add state if (contact.HasKey("State")) { AddParam(contactKey + "StateProvinceChoice", "S"); AddParam(contactKey + "StateProvince", contact["State"]); } // add province else if (contact.HasKey("Province")) { AddParam(contactKey + "StateProvinceChoice", "Province"); AddParam(contactKey + "StateProvince", contact["Province"]); } // add blank else { AddParam(contactKey + "StateProvinceChoice", "Blank"); AddParam(contactKey + "StateProvince", ""); } AddParam(contactKey + "City", contact["City"]); AddParam(contactKey + "Address1", contact["Address"]); AddParam(contactKey + "Address2", contact["Address1"]); AddParam(contactKey + "LastName", contact["LastName"]); AddParam(contactKey + "FirstName", contact["FirstName"]); AddParam(contactKey + "JobTitle", contact["JobTitle"]); AddParam(contactKey + "OrganizationName", contact["Company"]); } } }
public void CanSerialize() { var contact = new DomainContact { FirstName = "John", LastName = "Doe", OrganizationName = "Tucows", Address1 = "141 Lafayette St.", Address2 = "Floor 99", City = "New York", State = "NY", Country = "US", PostalCode = "10013", Email = "*****@*****.**", Phone = "+1.8661111111" }; var request = new RegisterRequest { Domain = "test.com", Contacts = new ContactSet { Admin = contact, Billing = contact, Tech = contact, Owner = contact }, AutoRenew = false, LockDomain = true, RegistrationType = RegistrationType.New, Period = 1, WhoisPrivacy = true, UserName = "******", Password = "******" }; var text = request.ToXml().ToString(); Assert.Equal( @"<OPS_envelope> <header> <version>0.9</version> </header> <body> <data_block> <dt_assoc> <item key=""protocol"">XCP</item> <item key=""action"">SW_REGISTER</item> <item key=""object"">DOMAIN</item> <item key=""attributes""> <dt_assoc> <item key=""auto_renew"">0</item> <item key=""contact_set""> <dt_assoc> <item key=""owner""> <dt_assoc> <item key=""first_name"">John</item> <item key=""last_name"">Doe</item> <item key=""phone"">+1.8661111111</item> <item key=""email"">[email protected]</item> <item key=""org_name"">Tucows</item> <item key=""address1"">141 Lafayette St.</item> <item key=""address2"">Floor 99</item> <item key=""city"">New York</item> <item key=""state"">NY</item> <item key=""country"">US</item> <item key=""postal_code"">10013</item> </dt_assoc> </item> <item key=""admin""> <dt_assoc> <item key=""first_name"">John</item> <item key=""last_name"">Doe</item> <item key=""phone"">+1.8661111111</item> <item key=""email"">[email protected]</item> <item key=""org_name"">Tucows</item> <item key=""address1"">141 Lafayette St.</item> <item key=""address2"">Floor 99</item> <item key=""city"">New York</item> <item key=""state"">NY</item> <item key=""country"">US</item> <item key=""postal_code"">10013</item> </dt_assoc> </item> <item key=""tech""> <dt_assoc> <item key=""first_name"">John</item> <item key=""last_name"">Doe</item> <item key=""phone"">+1.8661111111</item> <item key=""email"">[email protected]</item> <item key=""org_name"">Tucows</item> <item key=""address1"">141 Lafayette St.</item> <item key=""address2"">Floor 99</item> <item key=""city"">New York</item> <item key=""state"">NY</item> <item key=""country"">US</item> <item key=""postal_code"">10013</item> </dt_assoc> </item> <item key=""billing""> <dt_assoc> <item key=""first_name"">John</item> <item key=""last_name"">Doe</item> <item key=""phone"">+1.8661111111</item> <item key=""email"">[email protected]</item> <item key=""org_name"">Tucows</item> <item key=""address1"">141 Lafayette St.</item> <item key=""address2"">Floor 99</item> <item key=""city"">New York</item> <item key=""state"">NY</item> <item key=""country"">US</item> <item key=""postal_code"">10013</item> </dt_assoc> </item> </dt_assoc> </item> <item key=""custom_nameservers"">0</item> <item key=""custom_tech_contact"">0</item> <item key=""f_lock_domain"">1</item> <item key=""domain"">test.com</item> <item key=""handle"">process</item> <item key=""period"">1</item> <item key=""reg_username"">test</item> <item key=""reg_password"">password</item> <item key=""reg_type"">new</item> <item key=""f_whois_privacy"">1</item> </dt_assoc> </item> </dt_assoc> </data_block> </body> </OPS_envelope>", text); }
/// <summary> /// 创建联系人对象。 /// </summary> /// <param name="path">表示访问路径。</param> /// <returns>联系人域节点或对象。</returns> public DomainContact GetContact(string path) { DomainContact domainContact = new DomainContact(CreateDirectoryPath(path), Username, Password, AuthenticationType); return(domainContact); }