diff options
Diffstat (limited to 'examples/contactdb/contactdb.cs')
-rw-r--r-- | examples/contactdb/contactdb.cs | 454 |
1 files changed, 454 insertions, 0 deletions
diff --git a/examples/contactdb/contactdb.cs b/examples/contactdb/contactdb.cs new file mode 100644 index 0000000..ea388d2 --- /dev/null +++ b/examples/contactdb/contactdb.cs @@ -0,0 +1,454 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +//////////////////////////////////////////////////////// +// Create a Custom Field +// POST /contactdb/custom_fields + +string data = @"{ + 'name': 'pet', + 'type': 'text' +}"; +dynamic response = sg.client.contactdb.custom_fields.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve all custom fields +// GET /contactdb/custom_fields + +dynamic response = sg.client.contactdb.custom_fields.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve a Custom Field +// GET /contactdb/custom_fields/{custom_field_id} + +var custom_field_id = "test_url_param"; +dynamic response = sg.client.contactdb.custom_fields._(custom_field_id).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Delete a Custom Field +// DELETE /contactdb/custom_fields/{custom_field_id} + +var custom_field_id = "test_url_param"; +dynamic response = sg.client.contactdb.custom_fields._(custom_field_id).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Create a List +// POST /contactdb/lists + +string data = @"{ + 'name': 'your list name' +}"; +dynamic response = sg.client.contactdb.lists.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve all lists +// GET /contactdb/lists + +dynamic response = sg.client.contactdb.lists.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Delete Multiple lists +// DELETE /contactdb/lists + +string data = @"[ + 1, + 2, + 3, + 4 +]"; +dynamic response = sg.client.contactdb.lists.delete(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Update a List +// PATCH /contactdb/lists/{list_id} + +string data = @"{ + 'name': 'newlistname' +}"; +string queryParams = @"{ + 'list_id': 0 +}"; +var list_id = "test_url_param"; +dynamic response = sg.client.contactdb.lists._(list_id).patch(requestBody: data, queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve a single list +// GET /contactdb/lists/{list_id} + +string queryParams = @"{ + 'list_id': 0 +}"; +var list_id = "test_url_param"; +dynamic response = sg.client.contactdb.lists._(list_id).get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Delete a List +// DELETE /contactdb/lists/{list_id} + +string queryParams = @"{ + 'delete_contacts': 'true' +}"; +var list_id = "test_url_param"; +dynamic response = sg.client.contactdb.lists._(list_id).delete(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Add Multiple Recipients to a List +// POST /contactdb/lists/{list_id}/recipients + +string data = @"[ + 'recipient_id1', + 'recipient_id2' +]"; +var list_id = "test_url_param"; +dynamic response = sg.client.contactdb.lists._(list_id).recipients.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve all recipients on a List +// GET /contactdb/lists/{list_id}/recipients + +string queryParams = @"{ + 'list_id': 0, + 'page': 1, + 'page_size': 1 +}"; +var list_id = "test_url_param"; +dynamic response = sg.client.contactdb.lists._(list_id).recipients.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Add a Single Recipient to a List +// POST /contactdb/lists/{list_id}/recipients/{recipient_id} + +var list_id = "test_url_param"; +var recipient_id = "test_url_param"; +dynamic response = sg.client.contactdb.lists._(list_id).recipients._(recipient_id).post(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Delete a Single Recipient from a Single List +// DELETE /contactdb/lists/{list_id}/recipients/{recipient_id} + +string queryParams = @"{ + 'list_id': 0, + 'recipient_id': 0 +}"; +var list_id = "test_url_param"; +var recipient_id = "test_url_param"; +dynamic response = sg.client.contactdb.lists._(list_id).recipients._(recipient_id).delete(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Update Recipient +// PATCH /contactdb/recipients + +string data = @"[ + { + 'email': 'jones@example.com', + 'first_name': 'Guy', + 'last_name': 'Jones' + } +]"; +dynamic response = sg.client.contactdb.recipients.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Add recipients +// POST /contactdb/recipients + +string data = @"[ + { + 'age': 25, + 'email': 'example@example.com', + 'first_name': '', + 'last_name': 'User' + }, + { + 'age': 25, + 'email': 'example2@example.com', + 'first_name': 'Example', + 'last_name': 'User' + } +]"; +dynamic response = sg.client.contactdb.recipients.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve recipients +// GET /contactdb/recipients + +string queryParams = @"{ + 'page': 1, + 'page_size': 1 +}"; +dynamic response = sg.client.contactdb.recipients.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Delete Recipient +// DELETE /contactdb/recipients + +string data = @"[ + 'recipient_id1', + 'recipient_id2' +]"; +dynamic response = sg.client.contactdb.recipients.delete(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve the count of billable recipients +// GET /contactdb/recipients/billable_count + +dynamic response = sg.client.contactdb.recipients.billable_count.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve a Count of Recipients +// GET /contactdb/recipients/count + +dynamic response = sg.client.contactdb.recipients.count.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve recipients matching search criteria +// GET /contactdb/recipients/search + +string queryParams = @"{ + '{field_name}': 'test_string' +}"; +dynamic response = sg.client.contactdb.recipients.search.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve a single recipient +// GET /contactdb/recipients/{recipient_id} + +var recipient_id = "test_url_param"; +dynamic response = sg.client.contactdb.recipients._(recipient_id).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Delete a Recipient +// DELETE /contactdb/recipients/{recipient_id} + +var recipient_id = "test_url_param"; +dynamic response = sg.client.contactdb.recipients._(recipient_id).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve the lists that a recipient is on +// GET /contactdb/recipients/{recipient_id}/lists + +var recipient_id = "test_url_param"; +dynamic response = sg.client.contactdb.recipients._(recipient_id).lists.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve reserved fields +// GET /contactdb/reserved_fields + +dynamic response = sg.client.contactdb.reserved_fields.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Create a Segment +// POST /contactdb/segments + +string data = @"{ + 'conditions': [ + { + 'and_or': '', + 'field': 'last_name', + 'operator': 'eq', + 'value': 'Miller' + }, + { + 'and_or': 'and', + 'field': 'last_clicked', + 'operator': 'gt', + 'value': '01/02/2015' + }, + { + 'and_or': 'or', + 'field': 'clicks.campaign_identifier', + 'operator': 'eq', + 'value': '513' + } + ], + 'list_id': 4, + 'name': 'Last Name Miller' +}"; +dynamic response = sg.client.contactdb.segments.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve all segments +// GET /contactdb/segments + +dynamic response = sg.client.contactdb.segments.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Update a segment +// PATCH /contactdb/segments/{segment_id} + +string data = @"{ + 'conditions': [ + { + 'and_or': '', + 'field': 'last_name', + 'operator': 'eq', + 'value': 'Miller' + } + ], + 'list_id': 5, + 'name': 'The Millers' +}"; +string queryParams = @"{ + 'segment_id': 'test_string' +}"; +var segment_id = "test_url_param"; +dynamic response = sg.client.contactdb.segments._(segment_id).patch(requestBody: data, queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve a segment +// GET /contactdb/segments/{segment_id} + +string queryParams = @"{ + 'segment_id': 0 +}"; +var segment_id = "test_url_param"; +dynamic response = sg.client.contactdb.segments._(segment_id).get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Delete a segment +// DELETE /contactdb/segments/{segment_id} + +string queryParams = @"{ + 'delete_contacts': 'true' +}"; +var segment_id = "test_url_param"; +dynamic response = sg.client.contactdb.segments._(segment_id).delete(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve recipients on a segment +// GET /contactdb/segments/{segment_id}/recipients + +string queryParams = @"{ + 'page': 1, + 'page_size': 1 +}"; +var segment_id = "test_url_param"; +dynamic response = sg.client.contactdb.segments._(segment_id).recipients.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + |