public void WorkaroundCrm15815() { using (var client = TestHelper.ClientGet()) { // Create a contact, chain phone and website. var myPhone = new PhoneRequest { PhoneNumber = "03-100 20 00" }; var myWebsite1 = new WebsiteRequest { Url = "http://smurf.com" }; var myWebsite2 = new WebsiteRequest { Url = "http://smurf.org" }; const string myExternalId = "Test_External_Smurf"; client.ContactSaveWorkaroundCrm15815(TestHelper.ApiKey, TestHelper.SiteKey, new ContactRequest { ContactType = ContactType.Individual, LastName = "Smurf", FirstName = "Smul", ExternalIdentifier = myExternalId, ApiOptions = new ApiOptions { Match = "external_identifier" }, WebsiteSaveRequest = new List<WebsiteRequest> { myWebsite1, myWebsite2 }, PhoneSaveRequest = new List<PhoneRequest> { myPhone }, }); // Get contact with websites var contact = client.ContactGetSingle(TestHelper.ApiKey, TestHelper.SiteKey, new ContactRequest { ExternalIdentifier = myExternalId, PhoneGetRequest = new PhoneRequest(), WebsiteGetRequest = new WebsiteRequest(), }); // Delete contact before doing assertions. client.ContactDelete(TestHelper.ApiKey, TestHelper.SiteKey, new DeleteRequest(contact.Id), 1); Assert.AreEqual(1, contact.PhoneResult.Count); Assert.AreEqual(myPhone.PhoneNumber, contact.PhoneResult.Values.First().PhoneNumber); Assert.AreEqual(2, contact.WebsiteResult.Count); Assert.AreEqual(myWebsite1.Url, contact.WebsiteResult.Values.First().Url); Assert.AreEqual(myWebsite2.Url, contact.WebsiteResult.Values.Last().Url); } }
public void ChainedPhoneAnd2WebsitesCreate() { using (var client = TestHelper.ClientGet()) { // Create a contact, chain phone and website. var myPhone1 = new PhoneRequest { PhoneNumber = "03-100 20 00" }; var myPhone2 = new PhoneRequest { PhoneNumber = "03-100 20 01" }; var myWebsite1 = new WebsiteRequest { Url = "http://smurf.com" }; var myWebsite2 = new WebsiteRequest { Url = "http://smurf.org" }; var result = client.ContactSave(TestHelper.ApiKey, TestHelper.SiteKey, new ContactRequest { ContactType = ContactType.Individual, LastName = "Smurf", FirstName = "Smul", ExternalIdentifier = "Test_External_Smurf", ApiOptions = new ApiOptions {Match = "external_identifier"}, WebsiteSaveRequest = new List<WebsiteRequest> {myWebsite1, myWebsite2}, PhoneSaveRequest = new List<PhoneRequest> {myPhone1, myPhone2}, }); // This crashes because of upstream issue CRM-15815: Assert.IsNotNull(result.Id); // Get contact with websites var contact = client.ContactGetSingle(TestHelper.ApiKey, TestHelper.SiteKey, new ContactRequest { Id = result.Id.Value, PhoneGetRequest = new PhoneRequest(), WebsiteGetRequest = new WebsiteRequest(), }); // Delete contact before doing assertions. client.ContactDelete(TestHelper.ApiKey, TestHelper.SiteKey, new DeleteRequest(result.Id.Value), 1); Assert.AreEqual(result.Id, contact.Id); Assert.AreEqual(2, contact.PhoneResult.Count); Assert.AreEqual(myPhone1.PhoneNumber, contact.PhoneResult.Values.First().PhoneNumber); Assert.AreEqual(myPhone2.PhoneNumber, contact.PhoneResult.Values.Last().PhoneNumber); Assert.AreEqual(2, contact.WebsiteResult.Count); Assert.AreEqual(myWebsite1.Url, contact.WebsiteResult.Values.First().Url); Assert.AreEqual(myWebsite2.Url, contact.WebsiteResult.Values.Last().Url); } }