コード例 #1
0
        public void CreateWebsite()
        {
            using (var client = TestHelper.ClientGet())
            {
                var website = new WebsiteRequest
                {
                    ContactId = _myContactId,
                    Url = "http://blog.johanv.org",
                    WebsiteType = WebsiteType.Main
                };

                var result = client.WebsiteSave(TestHelper.ApiKey, TestHelper.SiteKey, website);

                Assert.AreEqual(0, result.IsError);
                Assert.AreEqual(website.ContactId, result.Values.First().ContactId);
                Assert.AreEqual(website.Url, result.Values.First().Url);
                Assert.AreEqual(website.WebsiteType, result.Values.First().WebsiteType);
            }
        }
コード例 #2
0
        /// <summary>
        /// Website example.
        /// </summary>
        public static void Example6()
        {
            using (var client = _factory.CreateChannel())
            {
                var contactResult = client.ContactGet(ApiKey, SiteKey,
                    new ContactRequest {ExternalIdentifier = ExternalId});

                var website = new WebsiteRequest
                {
                    ContactId = contactResult.Id,
                    Url = "http://blog.johanv.org",
                    WebsiteType = WebsiteType.Main
                };

                var result = client.WebsiteSave(ApiKey, SiteKey, website);
                website.Id = result.Values.First().Id;

                Console.WriteLine("Website added for contact with ContactID {0}  (external ID {1})", contactResult.Id, ExternalId);
                Console.WriteLine("You might want to check that. Then press enter.");
                Console.ReadLine();

                Debug.Assert(website.Id != null);
                client.WebsiteDelete(ApiKey, SiteKey, new DeleteRequest(website.Id.Value));
                
                Console.WriteLine("Website was deleted again.");
            }
        }
コード例 #3
0
        public void OffsetOption()
        {
            using (var client = TestHelper.ClientGet())
            {
                var website1 = new WebsiteRequest
                {
                    ContactId = _myContactId,
                    Url = "http://blog.johanv.org",
                    WebsiteType = WebsiteType.Main
                };
                var website2 = new WebsiteRequest
                {
                    ContactId = _myContactId,
                    Url = "http://civicrm.org",
                    WebsiteType = WebsiteType.Main
                };
                var website3 = new WebsiteRequest
                {
                    ContactId = _myContactId,
                    Url = "http://www.chiro.be",
                    WebsiteType = WebsiteType.Main
                };


                client.WebsiteSave(TestHelper.ApiKey, TestHelper.SiteKey, website1);
                client.WebsiteSave(TestHelper.ApiKey, TestHelper.SiteKey, website2);
                client.WebsiteSave(TestHelper.ApiKey, TestHelper.SiteKey, website3);

                var result = client.WebsiteGet(TestHelper.ApiKey, TestHelper.SiteKey,
                    new WebsiteRequest {ContactId = _myContactId, ApiOptions = new ApiOptions{Sort = "url", Offset = 2}});

                Assert.AreEqual(0, result.IsError);
                Assert.AreEqual(1, result.Count);
                Assert.AreEqual(website3.Url, result.Values.First().Url);
            }
        }
コード例 #4
0
        public void ChainedOptionsWebsite()
        {
            using (var client = TestHelper.ClientGet())
            {
                // Create a contact with two websites.
                var myWebsite1 = new WebsiteRequest { Url = "http://smurf1.com" };
                var myWebsite2 = new WebsiteRequest { Url = "http://smurf2.com" };

                var saveResult = 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 },
                    });
                Assert.IsNotNull(saveResult.Id);

                // Get contact with websites, order them backwards, and retrieve only one.
                var contact = client.ContactGetSingle(TestHelper.ApiKey, TestHelper.SiteKey,
                    new ContactRequest
                    {
                        Id = saveResult.Id.Value,
                        WebsiteGetRequest = new WebsiteRequest
                        {
                            ApiOptions = new ApiOptions {Sort = "url DESC", Limit = 1}
                        }
                    });

                // Delete contact before doing assertions.
                client.ContactDelete(TestHelper.ApiKey, TestHelper.SiteKey, new DeleteRequest(saveResult.Id.Value), 1);

                Assert.AreEqual(1, contact.WebsiteResult.Count);
                Assert.AreEqual(myWebsite2.Url, contact.WebsiteResult.Values.First().Url);
            }
        }
コード例 #5
0
        public void ChainedSearchRequest()
        {
            using (var client = TestHelper.ClientGet())
            {
                // Create a contact, chain website.
                var my1StWebsite = new WebsiteRequest { Url = "http://smurf.com", WebsiteType = WebsiteType.Main};
                var my2NdWebsite = new WebsiteRequest { Url = "http://salsaparilla.org", WebsiteType = WebsiteType.Work};

                var newContact = new ContactRequest
                {
                    ContactType = ContactType.Individual,
                    LastName = "Smurf",
                    FirstName = "Smul",
                    ExternalIdentifier = "Test_External_Smurf",
                    ApiOptions = new ApiOptions { Match = "external_identifier" },
                    WebsiteSaveRequest = new List<WebsiteRequest> { my1StWebsite, my2NdWebsite }
                };

                var result = client.ContactSave(TestHelper.ApiKey, TestHelper.SiteKey, newContact);
                Debug.Assert(result.Id.HasValue);

                // Get contact with main websites
                var contact = client.ContactGetSingle(TestHelper.ApiKey, TestHelper.SiteKey,
                    new ContactRequest
                    {
                        Id = result.Id.Value,
                        WebsiteGetRequest = new WebsiteRequest {WebsiteType = WebsiteType.Main}
                    });
                Assert.IsNotNull(contact.Id);

                // Clean up first (delete contact), then do other assertions.
                // (So the contact gets deleted even if the assertions fail.)
                client.ContactDelete(TestHelper.ApiKey, TestHelper.SiteKey, new DeleteRequest(contact.Id), 1);

                Assert.IsTrue(contact.WebsiteResult.Values.All(w => w.WebsiteType == WebsiteType.Main));
                Assert.IsTrue(contact.WebsiteResult.Values.Any(w => w.Url == my1StWebsite.Url));
            }
        }
コード例 #6
0
        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);
            }
        }
コード例 #7
0
        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);
            }
        }
コード例 #8
0
        public void ChainedWebsiteCreate()
        {
            using (var client = TestHelper.ClientGet())
            {
                // Create a contact, chain website.
                var myWebsite = new WebsiteRequest {Url = "http://smurf.com"};

                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> { myWebsite }
                    });
                Debug.Assert(result.Id.HasValue);

                // Get contact with websites
                var contact = client.ContactGetSingle(TestHelper.ApiKey, TestHelper.SiteKey,
                    new ContactRequest { Id = result.Id.Value, WebsiteGetRequest = new WebsiteRequest() });

                Assert.AreEqual(result.Id, contact.Id);
                Assert.AreEqual(1, contact.WebsiteResult.Count);
                Assert.AreEqual(myWebsite.Url, contact.WebsiteResult.Values.First().Url);

                // Delete contact

                client.ContactDelete(TestHelper.ApiKey, TestHelper.SiteKey, new DeleteRequest(result.Id.Value), 1);

            }
        }