summaryrefslogtreecommitdiffstats
path: root/examples/campaigns/campaigns.cs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/campaigns/campaigns.cs')
-rw-r--r--examples/campaigns/campaigns.cs158
1 files changed, 158 insertions, 0 deletions
diff --git a/examples/campaigns/campaigns.cs b/examples/campaigns/campaigns.cs
new file mode 100644
index 0000000..0d40cb1
--- /dev/null
+++ b/examples/campaigns/campaigns.cs
@@ -0,0 +1,158 @@
+using System;
+using SendGrid.Helpers.Mail;
+using System.Collections.Generic;
+using System.Net;
+
+string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User);
+dynamic sg = new SendGrid.SendGridAPIClient(_apiKey);
+
+##################################################
+# Create a Campaign #
+# POST /campaigns #
+
+string data = @"{
+ 'categories': [
+ 'spring line'
+ ],
+ 'custom_unsubscribe_url': '',
+ 'html_content': '<html><head><title></title></head><body><p>Check out our spring line!</p></body></html>',
+ 'ip_pool': 'marketing',
+ 'list_ids': [
+ 110,
+ 124
+ ],
+ 'plain_content': 'Check out our spring line!',
+ 'segment_ids': [
+ 110
+ ],
+ 'sender_id': 124451,
+ 'subject': 'New Products for Spring!',
+ 'suppression_group_id': 42,
+ 'title': 'March Newsletter'
+}";
+dynamic response = sg.client.campaigns.post(requestBody: data);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result);
+Console.WriteLine(response.ResponseHeaders.ToString());
+
+##################################################
+# Retrieve all Campaigns #
+# GET /campaigns #
+
+string queryParams = @"{
+ 'limit': 0,
+ 'offset': 0
+}";
+dynamic response = sg.client.campaigns.get(queryParams: queryParams);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result);
+Console.WriteLine(response.ResponseHeaders.ToString());
+
+##################################################
+# Update a Campaign #
+# PATCH /campaigns/{campaign_id} #
+
+string data = @"{
+ 'categories': [
+ 'summer line'
+ ],
+ 'html_content': '<html><head><title></title></head><body><p>Check out our summer line!</p></body></html>',
+ 'plain_content': 'Check out our summer line!',
+ 'subject': 'New Products for Summer!',
+ 'title': 'May Newsletter'
+}";
+var campaign_id = "test_url_param";
+dynamic response = sg.client.campaigns._(campaign_id).patch(requestBody: data);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result);
+Console.WriteLine(response.ResponseHeaders.ToString());
+
+##################################################
+# Retrieve a single campaign #
+# GET /campaigns/{campaign_id} #
+
+var campaign_id = "test_url_param";
+dynamic response = sg.client.campaigns._(campaign_id).get();
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result);
+Console.WriteLine(response.ResponseHeaders.ToString());
+
+##################################################
+# Delete a Campaign #
+# DELETE /campaigns/{campaign_id} #
+
+var campaign_id = "test_url_param";
+dynamic response = sg.client.campaigns._(campaign_id).delete();
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result);
+Console.WriteLine(response.ResponseHeaders.ToString());
+
+##################################################
+# Update a Scheduled Campaign #
+# PATCH /campaigns/{campaign_id}/schedules #
+
+string data = @"{
+ 'send_at': 1489451436
+}";
+var campaign_id = "test_url_param";
+dynamic response = sg.client.campaigns._(campaign_id).schedules.patch(requestBody: data);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result);
+Console.WriteLine(response.ResponseHeaders.ToString());
+
+##################################################
+# Schedule a Campaign #
+# POST /campaigns/{campaign_id}/schedules #
+
+string data = @"{
+ 'send_at': 1489771528
+}";
+var campaign_id = "test_url_param";
+dynamic response = sg.client.campaigns._(campaign_id).schedules.post(requestBody: data);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result);
+Console.WriteLine(response.ResponseHeaders.ToString());
+
+##################################################
+# View Scheduled Time of a Campaign #
+# GET /campaigns/{campaign_id}/schedules #
+
+var campaign_id = "test_url_param";
+dynamic response = sg.client.campaigns._(campaign_id).schedules.get();
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result);
+Console.WriteLine(response.ResponseHeaders.ToString());
+
+##################################################
+# Unschedule a Scheduled Campaign #
+# DELETE /campaigns/{campaign_id}/schedules #
+
+var campaign_id = "test_url_param";
+dynamic response = sg.client.campaigns._(campaign_id).schedules.delete();
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result);
+Console.WriteLine(response.ResponseHeaders.ToString());
+
+##################################################
+# Send a Campaign #
+# POST /campaigns/{campaign_id}/schedules/now #
+
+var campaign_id = "test_url_param";
+dynamic response = sg.client.campaigns._(campaign_id).schedules.now.post();
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result);
+Console.WriteLine(response.ResponseHeaders.ToString());
+
+##################################################
+# Send a Test Campaign #
+# POST /campaigns/{campaign_id}/schedules/test #
+
+string data = @"{
+ 'to': 'your.email@example.com'
+}";
+var campaign_id = "test_url_param";
+dynamic response = sg.client.campaigns._(campaign_id).schedules.test.post(requestBody: data);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result);
+Console.WriteLine(response.ResponseHeaders.ToString());
+