using System; using SendGrid.Helpers.Mail; // If you are using the Mail Helper using Newtonsoft.Json; // You can generate your JSON string yourelf or with another library if you prefer 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': '

Check out our spring line!

', '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' }"; Object json = JsonConvert.DeserializeObject(data); data = json.ToString(); dynamic response = await sg.client.campaigns.post(requestBody: data); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Retrieve all Campaigns // GET /campaigns string queryParams = @"{ 'limit': 1, 'offset': 1 }"; dynamic response = await sg.client.campaigns.get(queryParams: queryParams); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Update a Campaign // PATCH /campaigns/{campaign_id} string data = @"{ 'categories': [ 'summer line' ], 'html_content': '

Check out our summer line!

', 'plain_content': 'Check out our summer line!', 'subject': 'New Products for Summer!', 'title': 'May Newsletter' }"; Object json = JsonConvert.DeserializeObject(data); data = json.ToString(); var campaign_id = "test_url_param"; dynamic response = await sg.client.campaigns._(campaign_id).patch(requestBody: data); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Retrieve a single campaign // GET /campaigns/{campaign_id} var campaign_id = "test_url_param"; dynamic response = await sg.client.campaigns._(campaign_id).get(); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Delete a Campaign // DELETE /campaigns/{campaign_id} var campaign_id = "test_url_param"; dynamic response = await sg.client.campaigns._(campaign_id).delete(); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Update a Scheduled Campaign // PATCH /campaigns/{campaign_id}/schedules string data = @"{ 'send_at': 1489451436 }"; Object json = JsonConvert.DeserializeObject(data); data = json.ToString(); var campaign_id = "test_url_param"; dynamic response = await sg.client.campaigns._(campaign_id).schedules.patch(requestBody: data); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Schedule a Campaign // POST /campaigns/{campaign_id}/schedules string data = @"{ 'send_at': 1489771528 }"; Object json = JsonConvert.DeserializeObject(data); data = json.ToString(); var campaign_id = "test_url_param"; dynamic response = await sg.client.campaigns._(campaign_id).schedules.post(requestBody: data); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // View Scheduled Time of a Campaign // GET /campaigns/{campaign_id}/schedules var campaign_id = "test_url_param"; dynamic response = await sg.client.campaigns._(campaign_id).schedules.get(); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Unschedule a Scheduled Campaign // DELETE /campaigns/{campaign_id}/schedules var campaign_id = "test_url_param"; dynamic response = await sg.client.campaigns._(campaign_id).schedules.delete(); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Send a Campaign // POST /campaigns/{campaign_id}/schedules/now var campaign_id = "test_url_param"; dynamic response = await sg.client.campaigns._(campaign_id).schedules.now.post(); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Send a Test Campaign // POST /campaigns/{campaign_id}/schedules/test string data = @"{ 'to': 'your.email@example.com' }"; Object json = JsonConvert.DeserializeObject(data); data = json.ToString(); var campaign_id = "test_url_param"; dynamic response = await sg.client.campaigns._(campaign_id).schedules.test.post(requestBody: data); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine();